elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web (Moderador: #!drvy)
| | |-+  pasar array de un formulario que se repite
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: pasar array de un formulario que se repite  (Leído 2,452 veces)
tecasoft


Desconectado Desconectado

Mensajes: 319

Ciberseguridad tecasoft.com


Ver Perfil WWW
pasar array de un formulario que se repite
« en: 28 Octubre 2015, 02:23 am »

como puedo pasar el array de un formulario que repite document.form_partes.elements['cantidad[]'];

barcos.php
Código
  1. function visualizarpartes() {
  2.  
  3. var str=document.form_partes.elements['cantidad[]'];
  4. for (i=0; i< str.length; i++) {
  5.  
  6.  
  7.  
  8. if(str[i].length==0)
  9. {
  10. document.getElementById("visualizar_partes").innerHTML="no hay datos";
  11. return;
  12. }
  13.  
  14.  var xhttp = new XMLHttpRequest();
  15.  xhttp.onreadystatechange = function() {
  16.    if (xhttp.readyState == 4 && xhttp.status == 200) {
  17.      document.getElementById("visualizar_partes").innerHTML = xhttp.responseText;
  18.    }
  19.  }
  20.  xhttp.open("GET", "ajax_visualizar_partes.php?cantidad="+str[i], true);
  21.  xhttp.send();
  22. }
  23.  
  24. }
  25.  
  26.  

ajax_visualizar_partes.php
Código
  1. foreach($cantidad as $numero){
  2. echo $numero;
  3. }
  4.  
  5.  
  6.  


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
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.529


I'm fourth.


Ver Perfil WWW
Re: pasar array de un formulario que se repite
« Respuesta #1 en: 28 Octubre 2015, 02:37 am »

Tu pregunta no tiene sentido. :huh: Creo que hay que pulir bastante esa destreza para escribir mensajes razonables.


En línea

tecasoft


Desconectado Desconectado

Mensajes: 319

Ciberseguridad tecasoft.com


Ver Perfil WWW
Re: pasar array de un formulario que se repite
« Respuesta #2 en: 28 Octubre 2015, 03:00 am »

Código
  1.  
  2. var str=document.form_partes.elements['cantidad[]'];
  3. for (i=0; i< str.length; i++) {
  4.  
  5. alert(str[i].value);
  6.  
  7. }
  8.  

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
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.529


I'm fourth.


Ver Perfil WWW
Re: pasar array de un formulario que se repite
« Respuesta #3 en: 28 Octubre 2015, 03:16 am »

Código
  1.  
  2. var str=document.form_partes.elements['cantidad[]'];
  3. for (i=0; i< str.length; i++) {
  4.  
  5. alert(str[i].value);
  6.  
  7. }
  8.  

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.

Código
  1. var arr = document.form_partes.elements['cantidad[]']
  2. var qs = Array.prototype.reduce(arr, function (qs, cantidad) {
  3.    if (cantidad.length > 0) {
  4.        qs += (qs === '') ? ('cantidad[]=' + cantidad.value) : ('&cantidad[]=' + cantidad.value);
  5.    }
  6.    return qs;
  7. }, '');
  8.  
  9. var xhttp = new XMLHttpRequest();
  10. xhttp.onreadystatechange = function () {
  11.    if (xhttp.readyState == 4 && xhttp.status == 200) {
  12.        document.getElementById("visualizar_partes").innerHTML = xhttp.responseText;
  13.    }
  14. }
  15. xhttp.open("GET", "ajax_visualizar_partes.php?" + qs, true);
  16. xhttp.send();
  17.  

qs deberia ser:

Código:
cantidad[]=1300&cantidad[]=1200&cantidad[]=1100
« Última modificación: 28 Octubre 2015, 03:25 am por MinusFour » En línea

tecasoft


Desconectado Desconectado

Mensajes: 319

Ciberseguridad tecasoft.com


Ver Perfil WWW
Re: pasar array de un formulario que se repite
« Respuesta #4 en: 28 Octubre 2015, 03:24 am »

habria alguna forma de no hacerlo con protoype y que sea con jquery? ademas me arroja un error:

Código
  1.  
  2. [object HTMLInputElement]Hey[object HTMLInputElement][object HTMLInputElement]
  3.  

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
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.529


I'm fourth.


Ver Perfil WWW
Re: pasar array de un formulario que se repite
« Respuesta #5 en: 28 Octubre 2015, 03:38 am »

habria alguna forma de no hacerlo con protoype y que sea con jquery? ademas me arroja un error:

Código
  1.  
  2. [object HTMLInputElement]Hey[object HTMLInputElement][object HTMLInputElement]
  3.  

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:

Código
  1. var qs = $.param($('input[name="cantidad[]"]').map(function (ind, elem) {
  2.    return {
  3.        name: 'cantidad[]',
  4.        value: elem.value
  5.    }
  6. }).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....

Código
  1. var arr = document.form_partes.elements['cantidad[]']
  2. var qs = Array.prototype.reduce(arr, function (qs, cantidad) {
  3.    if (cantidad.length > 0 && typeof parseInt(cantidad, 10) === 'number') {
  4.        qs += (qs === '') ? ('cantidad[]=' + cantidad.value) : ('&cantidad[]=' + cantidad.value);
  5.    }
  6.    return qs;
  7. }, '');
« Última modificación: 28 Octubre 2015, 03:48 am por MinusFour » En línea

tecasoft


Desconectado Desconectado

Mensajes: 319

Ciberseguridad tecasoft.com


Ver Perfil WWW
Re: pasar array de un formulario que se repite
« Respuesta #6 en: 28 Octubre 2015, 03:55 am »

lo tengo asi ahora pero no me chuta y tengo jquery activado.

Código
  1. var qs = $.param($('input[name="cantidad[]"]').map(function (ind, elem) {
  2.        return {
  3.            name: 'cantidad[]',
  4.            value: elem.value
  5.        }
  6.    }).get( "ajax_visualizar_partes.php", function( data ) {
  7.  $( "#visualizar_partes" ).html( data );
  8.  
  9. })
  10. );
  11.  
« Ú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
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.529


I'm fourth.


Ver Perfil WWW
Re: pasar array de un formulario que se repite
« Respuesta #7 en: 28 Octubre 2015, 15:19 pm »

Porque el get que he puesto no es para hacer AJAX.

Código
  1. var qs = $.param($('input[name="cantidad[]"]').map(function (ind, elem) {
  2.    return {
  3.        name: 'cantidad[]',
  4.        value: elem.value
  5.    }
  6. }).get());
  7.  
  8. $.get( "ajax_visualizar_partes.php?"+qs, function( data ) {
  9.  $( "#visualizar_partes" ).html( data );
  10. }
  11.  
« Última modificación: 30 Octubre 2015, 19:59 pm por #!drvy » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

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 Último mensaje 28 Agosto 2008, 19:14 pm
por ALejandro2111
[Consulta-php] Variables de formulario en array
PHP
hernanlp83 5 5,250 Último mensaje 29 Septiembre 2008, 23:12 pm
por cassiani
Pasar parametros a un array
Scripting
El_Java 1 3,535 Último mensaje 17 Mayo 2011, 23:09 pm
por leogtz
Pasar un array por una función
PHP
dimitrix 8 4,211 Último mensaje 19 Junio 2011, 22:47 pm
por cassiani
Variables de formulario y guardar en un array de sesion
PHP
MarMIX 1 11,128 Último mensaje 7 Marzo 2012, 01:47 am
por s00rk
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines