Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Enviar array con ajax a php

Estas en el tema de Enviar array con ajax a php en el foro de Javascript en Foros del Web. Hola, como estan. Tendrian la amabilidad de brindarme su guia en lo siguiente: Tengo una tabla la cual se le va agregando nuevas filas, las ...
  #1 (permalink)  
Antiguo 23/09/2015, 18:12
 
Fecha de Ingreso: mayo-2015
Mensajes: 47
Antigüedad: 9 años
Puntos: 0
Enviar array con ajax a php

Hola, como estan.
Tendrian la amabilidad de brindarme su guia en lo siguiente:

Tengo una tabla la cual se le va agregando nuevas filas, las mismas tiene inputs.

Código Javascript:
Ver original
  1. cadena=cadena + "<td>" + "<input type='text' id='detalle_venta["+id_elementos+"]' name='detalle_venta["+id_elementos+"]' class='txtdescipcion_tabla_venta' value='"+nombre+"' readonly/>" +"</td>";

El input lo identifico con:

Código HTML:
Ver original
  1. detalle_venta["+id_elementos+"]


Pero mi pregunta como envió ese valor con ajax a php, yo utilizo la siguiente forma para envíos normales:

Código Javascript:
Ver original
  1. function DatosFactura(){
  2.     ventana = document.getElementById('mi_factura');
  3.     nombre=document.getElementById('nombrea').value;
  4.     apellido=document.getElementById('apellidoa').value;
  5.  
  6.     ajax=objetoAjax();
  7.     ajax.open("POST", "/localhost/Administrador/ventas/vent.php",true);
  8.     ajax.onreadystatechange=function() {
  9.         if (ajax.readyState==4) {
  10.             ventana.innerHTML = ajax.responseText
  11.         }
  12.     }
  13.     ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
  14.  
  15. ajax.send("nombre="+nombre+"&apellido="+apellidoa)
  16. }


Gracias por su tiempo.
  #2 (permalink)  
Antiguo 23/09/2015, 18:47
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Enviar array con ajax a php

Si se trata de texto plano, puedes enviarlo tal y como lo haces con las otras variables. Solo lo tomas y lo envías, formando un par clave-valor, como lo haces en el ejemplo que muestras.

Un saludo
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 24/09/2015, 02:34
Avatar de kspr  
Fecha de Ingreso: agosto-2011
Ubicación: Ecuador
Mensajes: 43
Antigüedad: 12 años, 8 meses
Puntos: 7
Respuesta: Enviar array con ajax a php

Me parece que tus campos son creados dinámicamente, en caso de que necesites enviar varios parámetros, podrías recorrer todos esos campos y crear una cadena de texto.

aca un ejemplo:

Código Javascript:
Ver original
  1. (function () {
  2.     'use strict';
  3.  
  4.     var ajax, ventana, params, inputs_collection, inputs;
  5.  
  6.     ajax = new XMLHttpRequest();
  7.     inputs_collection = document.querySelectorAll('.txtdescipcion_tabla_venta');
  8.     params = '';
  9.     inputs = [].slice.call(inputs_collection, null);
  10.  
  11.     inputs.forEach(function (input) {
  12.         params += input.name + '=' + encodeURIComponent(input.value);
  13.  
  14.         if (inputs[inputs.length-1] !== input) {
  15.             params += '&';
  16.         }
  17.     });
  18.  
  19.     ajax.open("POST", "http://localhost/Administrador/ventas/vent.php",true);
  20.     ajax.onreadystatechange=function() {
  21.         if (ajax.readyState === 4) {
  22.             // some here ?
  23.         }
  24.     }
  25.    
  26.     ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
  27.     ajax.send(params);
  28. })();
  #4 (permalink)  
Antiguo 24/09/2015, 07:11
 
Fecha de Ingreso: mayo-2015
Mensajes: 47
Antigüedad: 9 años
Puntos: 0
Respuesta: Enviar array con ajax a php

Gracias por responder, pero si le envio como una cadena de texto en php como deberia ser la forma de recibirlos.
  #5 (permalink)  
Antiguo 24/09/2015, 12:08
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Enviar array con ajax a php

Depende. ¿Qué deseas hacer?
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #6 (permalink)  
Antiguo 24/09/2015, 16:20
Avatar de kspr  
Fecha de Ingreso: agosto-2011
Ubicación: Ecuador
Mensajes: 43
Antigüedad: 12 años, 8 meses
Puntos: 7
Respuesta: Enviar array con ajax a php

Cita:
Iniciado por EmilianoEmiliano Ver Mensaje
Gracias por responder, pero si le envio como una cadena de texto en php como deberia ser la forma de recibirlos.
lo recibes como un arreglo, por que no intentas ver que recibes? estas enviando datos del tipo form-urlencoded por lo que en el servidor recibes los parametros GET || POST || etc

Código PHP:
Ver original
  1. <?php
  2.  
  3.     die(print_r($_POST['detalle_venta'], 1));
  #7 (permalink)  
Antiguo 25/09/2015, 10:02
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Enviar array con ajax a php

Me parece que se refiere al tratamiento que debe de darles.

En principio, si se trata de un fragmento del DOM, lo que vas a recibir es texto plano, entonces, tienes que imprimirlo tal cual está formado. Como veo que utilizas el método POST, deberás recibir los datos de la forma $_POST['nombre de la variable'], aunque es bueno recordar que este es un método destructivo y, si no piensas añadir, modificar o eliminar datos en la base de datos, es preferible utilizar el método GET, el cual es constructivo. El que utilices un método de envío u otro, para este caso, solo afectará la forma en la que lo recibes, debiendo decidir entre $_GET y $_POST, sin embargo, es bueno saber utilizar adecuadamente los métodos de envío HTTP disponibles. Ahora bien, si lo que deseas hacer después es interactuar con el mismo, debes de delegar los eventos que vayan a desencadenar la llamada de los escuchadores, ya sea a la ventana, al documento o al elemento contenedor del fragmento del DOM que vas a añadir.

Por ejemplo, si deseas realizar alguna acción cuando se produzca el evento click en alguno de los elementos que posea la clase "txtdescipcion_tabla_venta", debes de, primero, capturar al elemento objetivo en el que se produjo el evento, luego, comparar su clase con la mencionada anteriormente y, si es la misma, ejecutas la acción.

Código Javascript:
Ver original
  1. document.addEventListener("click", function(event){
  2.     if (event.target.className == "txtdescipcion_tabla_venta"){
  3.         //Instrucciones
  4.     }
  5. }, false);

Y lo mismo va por los demás eventos que vayas a utilizar.

Un saludo
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Última edición por Alexis88; 25/09/2015 a las 10:09 Razón: Ejemplo

Etiquetas: ajax, input, php, valor
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:26.