[Php-avanzado] Armar cadena get en javascript

Matias Gea matigea en gmail.com
Vie Feb 19 09:41:27 ARST 2010


Hola, Lucas.

Si usás Mootools o jQuery o algo de eso se te simplifica mucho la
cosa. Podés mandar datos POST por AJAX, pero sin librería, no sabría
decirte cómo (si lo necesitás, avisame que lo averiguo).

Otra opción es que crees un iframe oculto y hagas que el target de tu
form sea ese iframe (esto se usa mucho para mandar imágenes, porque no
hay otra forma de hacerlo sin recargar). Igualmente, para que esto
valide tendrías que generar el iframe dinámicamente con Javascript y
de la misma forma definirle el target al form.

Si querés hacer lo del GET, podés y es bastante simple, pero no te lo
recomiendo por varios motivos. Primero, que la url tiene una longitud
máxima, las urls que superan esa longitud se cortan, es decir, si
tenes un form con un textarea, no te va a servir. Segundo, que los
datos que están en la url son visibles, y esto no sólo es para los
usuarios, sino para los proxy, generadores de estadísticas, cache,
etc. Tercero, muchas veces se generan conflictos en la url con los
caracteres raros.
Igualmente, la forma de hacerlo sería ponerle un id a cada input
hidden y armar una cadena con todos los id:

var url = 'http://www.misitio.com/agregar.php?nombre=' +
document.getElementById('hidden_nombre').value + '&apellido=' +
document.getElementById('hidden_nombre').value;

Cualquier cosa preguntá.

Saludos.

PD: es muuuucho más cómodo trabajar con librerías para javascript, no
sólo porque te simplifican ciertas tareas, sino también porque hacen
que todo sea compatible con todos los navegadores. El único problema
es la sobrecarga de entre 20K y 90K que tenés en la página (en
Mootools -que es el que yo uso casi siempre- podés elegir qué
componentes de la librería querés descargar, para alivianarlo).



El día 18 de febrero de 2010 22:00, Lucas Calviño
<thelookus en gmail.com> escribió:
> 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
>



-- 
Matias Fernando Gea
matigea en gmail.com
http://www.mfgea.com.ar


Más información sobre la lista de distribución Php-avanzado