Autor
|
Tema: pasar array de un formulario que se repite (Leído 2,451 veces)
|
tecasoft
Desconectado
Mensajes: 319
Ciberseguridad tecasoft.com
|
como puedo pasar el array de un formulario que repite document.form_partes.elements['cantidad[]'];barcos.phpfunction visualizarpartes() { var str=document.form_partes.elements['cantidad[]']; for (i=0; i< str.length; i++) { if(str[i].length==0) { document.getElementById("visualizar_partes").innerHTML="no hay datos"; return; } var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (xhttp.readyState == 4 && xhttp.status == 200) { document.getElementById("visualizar_partes").innerHTML = xhttp.responseText; } } xhttp.open("GET", "ajax_visualizar_partes.php?cantidad="+str[i], true); xhttp.send(); } }
ajax_visualizar_partes.phpforeach($cantidad as $numero){ echo $numero; }
|
|
|
En línea
|
http://www.tecasoft.com Un ninja del hacking etico, programacion en html5, css3, javascript, jquery, php, python, c/c++, ensamblador, ingenieria reversa,a auditorias de seguridad, pentesting, exploits
|
|
|
MinusFour
|
Tu pregunta no tiene sentido. Creo que hay que pulir bastante esa destreza para escribir mensajes razonables.
|
|
|
En línea
|
|
|
|
tecasoft
Desconectado
Mensajes: 319
Ciberseguridad tecasoft.com
|
var str=document.form_partes.elements['cantidad[]']; for (i=0; i< str.length; i++) { alert(str[i].value); }
esto lo que hace es sacar de un formulario la casilla name=cantidad[], es decir la casilla cantidad se repite varias veces. entonces lo que me muestra lo de arriba es 1300,1200,1100 del formulario form_partes de name="cantidad[]", yo lo que quiero es pasar esos 1300, 1200 y 1100 por GET, como lo harias tu? el alert me muestra esos 3 datos pero no consigo que vaya mas aya, tu que harias?
|
|
|
En línea
|
http://www.tecasoft.com Un ninja del hacking etico, programacion en html5, css3, javascript, jquery, php, python, c/c++, ensamblador, ingenieria reversa,a auditorias de seguridad, pentesting, exploits
|
|
|
MinusFour
|
var str=document.form_partes.elements['cantidad[]']; for (i=0; i< str.length; i++) { alert(str[i].value); }
esto lo que hace es sacar de un formulario la casilla name=cantidad[], es decir la casilla cantidad se repite varias veces. entonces lo que me muestra lo de arriba es 1300,1200,1100 del formulario form_partes de name="cantidad[]", yo lo que quiero es pasar esos 1300, 1200 y 1100 por GET, como lo harias tu? el alert me muestra esos 3 datos pero no consigo que vaya mas aya, tu que harias? Eso entonces no es un string. Es un arreglo, o un objeto parecido a un arreglo. var arr = document.form_partes.elements['cantidad[]'] var qs = Array.prototype.reduce(arr, function (qs, cantidad) { if (cantidad.length > 0) { qs += (qs === '') ? ('cantidad[]=' + cantidad.value) : ('&cantidad[]=' + cantidad.value); } return qs; }, ''); var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function () { if (xhttp.readyState == 4 && xhttp.status == 200) { document.getElementById("visualizar_partes").innerHTML = xhttp.responseText; } } xhttp.open("GET", "ajax_visualizar_partes.php?" + qs, true); xhttp.send();
qs deberia ser: cantidad[]=1300&cantidad[]=1200&cantidad[]=1100
|
|
« Última modificación: 28 Octubre 2015, 03:25 am por MinusFour »
|
En línea
|
|
|
|
tecasoft
Desconectado
Mensajes: 319
Ciberseguridad tecasoft.com
|
habria alguna forma de no hacerlo con protoype y que sea con jquery? ademas me arroja un error: [object HTMLInputElement]Hey[object HTMLInputElement][object HTMLInputElement]
ademas y si fuera el name=cantidad[] infinito* ese codigo no serviria ya que le tienes que poner manualmente el codigo. Muchas gracias
|
|
« Última modificación: 28 Octubre 2015, 03:25 am por tecasoft »
|
En línea
|
http://www.tecasoft.com Un ninja del hacking etico, programacion en html5, css3, javascript, jquery, php, python, c/c++, ensamblador, ingenieria reversa,a auditorias de seguridad, pentesting, exploits
|
|
|
MinusFour
|
habria alguna forma de no hacerlo con protoype y que sea con jquery? ademas me arroja un error: [object HTMLInputElement]Hey[object HTMLInputElement][object HTMLInputElement]
Pues... habias puesto codigo en javascript sin jQuery, me imaginaba que no estabas utilizando jQuery (que por cierto actualize la respuesta... ahora deberia funcionar). Con jQuery, no se si se pueda: var qs = $.param($('input[name="cantidad[]"]').map(function (ind, elem) { return { name: 'cantidad[]', value: elem.value } }).get());
El problema con los metodos de serialize y param es que escapan los strings con percent encoding. No estoy seguro si PHP recoja los nombres correctamente. ademas y si fuera el name=cantidad[] infinito* ese codigo no serviria ya que le tienes que poner manualmente el codigo.
Muchas gracias
En ningún lugar has puesto esa validación? Yo solo use las validaciones que usaste en tu primer código. De todas formas, es bastante sencillo agregar otras validaciones.... var arr = document.form_partes.elements['cantidad[]'] var qs = Array.prototype.reduce(arr, function (qs, cantidad) { if (cantidad.length > 0 && typeof parseInt(cantidad, 10) === 'number') { qs += (qs === '') ? ('cantidad[]=' + cantidad.value) : ('&cantidad[]=' + cantidad.value); } return qs; }, '');
|
|
« Última modificación: 28 Octubre 2015, 03:48 am por MinusFour »
|
En línea
|
|
|
|
tecasoft
Desconectado
Mensajes: 319
Ciberseguridad tecasoft.com
|
lo tengo asi ahora pero no me chuta y tengo jquery activado. var qs = $.param($('input[name="cantidad[]"]').map(function (ind, elem) { return { name: 'cantidad[]', value: elem.value } }).get( "ajax_visualizar_partes.php", function( data ) { $( "#visualizar_partes" ).html( data ); }) );
|
|
« Última modificación: 28 Octubre 2015, 03:58 am por tecasoft »
|
En línea
|
http://www.tecasoft.com Un ninja del hacking etico, programacion en html5, css3, javascript, jquery, php, python, c/c++, ensamblador, ingenieria reversa,a auditorias de seguridad, pentesting, exploits
|
|
|
MinusFour
|
Porque el get que he puesto no es para hacer AJAX. var qs = $.param($('input[name="cantidad[]"]').map(function (ind, elem) { return { name: 'cantidad[]', value: elem.value } }).get()); $.get( "ajax_visualizar_partes.php?"+qs, function( data ) { $( "#visualizar_partes" ).html( data ); }
|
|
« Última modificación: 30 Octubre 2015, 19:59 pm por #!drvy »
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Pasar Datos de un Formulario Con DataGridView a otro formulario con TEXTBOX C#
.NET (C#, VB.NET, ASP)
|
ALejandro2111
|
0
|
12,671
|
28 Agosto 2008, 19:14 pm
por ALejandro2111
|
|
|
[Consulta-php] Variables de formulario en array
PHP
|
hernanlp83
|
5
|
5,250
|
29 Septiembre 2008, 23:12 pm
por cassiani
|
|
|
Pasar parametros a un array
Scripting
|
El_Java
|
1
|
3,535
|
17 Mayo 2011, 23:09 pm
por leogtz
|
|
|
Pasar un array por una función
PHP
|
dimitrix
|
8
|
4,211
|
19 Junio 2011, 22:47 pm
por cassiani
|
|
|
Variables de formulario y guardar en un array de sesion
PHP
|
MarMIX
|
1
|
11,128
|
7 Marzo 2012, 01:47 am
por s00rk
|
|