[Php-avanzado] Armar cadena get en javascript
Hernán Galván
hernangalvan79 en hotmail.com
Vie Feb 19 04:13:40 ARST 2010
Yo lo haría con jquery.
Un excelente tutorial para salir andando: http://www.javascriptya.com.ar/jquery/
Incluís la librería jquery como cualquier js.
Le ponés un evento onclick al submit del formulario.
Y en la función que elijas, levantás los datos que necesitás con $("#loquesea).val(); que equivaldría a un document.getElementById("loquesea").value
O sea, en un formulario quiero enviar el campo "nombre"...
entonces, con jquery, en la función con la que se dispara el evento onclick del formulario sería algo así:
function procesarFormulario(){
//Acá levantás los valores de los campos que necesites...
var nombre = $("#loquesea).val();
//Acá está el ajax...
$.ajax({
async:true,
type: "POST",
dataType: "html",
contentType: "application/x-www-form-urlencoded",
url:"pagina1.php", //Donde pagina1.php es el lugar adonde vas a procesar los datos
data:"nombre="+nombre, //Acá armás la cadena con los datos (como si fuera una uri... "nombre=lucas&apellido=cualquiercosa" etc.)
success:llegadaDatos, //La función que se ejecuta si todo fué ok.
timeout:4000,
});
return false;
}
En pagina1.php levantas los datos con $_POST['nombre'] y hacés lo que quieras hacer, guardas los datos en en una bdd o lo que sea...
Y en el mismo archivo js hacés la función que se ejecuta si todo fué ok con el ajax.
function llegadaDatos(a){
//La variable "a" es el resultado de la salida de pagina1.php. Por ejemplo, hacés una carga a la bdd y un print "los datos se han guardado."
//"a", siempre es la variable que contiene la salida del php, en este caso "los datos se han guardado".
var x = $(#resultado); //el div con id "resultado" es donde querés que te muestre el resultado de la carga del formulario.
x.html(a); //En el div "resultado" escribo lo que está en la variable "a", o sea "los datos se han guardado".
}
Depende de lo que quieras hacer, en realidad, en el action del form podés no poner nada (o "#"), levantar los datos de los inputs del form mediante los ids,
pasarlos a un php que los procesa, y mostrar el resultado en un div, todo eso sin recarga de página.
En fin, pegale una mirada al tutorial que jquery es una bomba!, y te olvidás del xmlhttprequest
Es algo como eso lo que querías hacer o nada que ver?
Abrazo!
> Date: Thu, 18 Feb 2010 21:00:13 -0300
> From: thelookus en gmail.com
> To: php-avanzado en pato2.fi.mdp.edu.ar
> Subject: [Php-avanzado] Armar cadena get en javascript
>
> Hola, tengo el siguiente asunto:
>
> Tengo una suerte de panel de control, en el que tengo un menu a la
> izquierda y voy trayendo el contenido correspondiente en un div a la
> derecha con una funcion javascript y con xmlhttprequest (cuanta vuelta
> para no decir ajax...) bué, en fin...
>
> Se me sucitó el siguiente problema.
>
> En la carga de registros, al momento de hacer el submit, me manda
> obviamente al destino que tenga el "action" del form. Yo quiero evitar
> esto, ya que quiero traer el contenido de la pagina de destino del form,
> en la que se procesa la carga, pero no quiero salir de la estructura que
> tengo, osea, quiero que se muestre la pagina del action en el div que
> uso como contenedor...me explico?
>
> Bueno, pensé en pasar los parámetros vía get armandolos desde una
> función js pero cada parametro esta dentro de un input hidden, a su vez
> dentro de un div para cada parametro...
> Bueno, quería saber si alguien tuvo el mismo embrollo y como desenredó
> su madeja....
>
> Gracias.
> _______________________________________________
> Php-avanzado mailing list
> Php-avanzado en pato2.fi.mdp.edu.ar
> http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado
_________________________________________________________________
Ahora chateá desde la playa con tu celu. Registrate gratis a SMS Messenger.
http://www.somosmessengersiempre.com/?ocid=TWLH
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://www3.fi.mdp.edu.ar/cgi-bin/mailman/private/php-avanzado/attachments/20100219/2331c83b/attachment.htm
Más información sobre la lista de distribución Php-avanzado