
Problema con formulario dinámico jquery + ajax (indi
Publicado por Iván (7 intervenciones) el 16/07/2016 16:09:54
Hola a todos!!
Estoy haciendo "mi primer programa" con jquery y ajax y me he encontrado con el siguiente problema del cual no he podido encontrar la causa.
Veréis, estoy insertando elementos en un formulario dinámico (select y text) de esta forma
jQuery('<select/>',
{
}).appendTo('#formulario_aceites');
var s = document.getElementsByName("selector_de_aceites[]")[count_aceites];
selector_de_aceites(s, list);
jQuery('<INPUT/>',
{
}).appendTo('#formulario_aceites');
Esto funciona correctamente (en apariencia)..
Luego estoy enviado los datos del formulario a un archivo (calculos.php) de esta otra forma...
$.post("./php/calculos.php", $("#formulario").serialize() + $("#formulario_aceites").serialize(), function(respuesta)
{
/*Esto es para comprobar los nombres de los inputs y aparentemente están bien*/
var form = document.getElementById("formulario_aceites");
for(i=0;i<form.elements.length;i++) console.log(form.elements[i].name);
/*AQUÍ ESTÁ EL PROBLEMA*/
console.log(respuesta);
});
Lo que está pasando es que el primer select insertado es como si no existiera.. y sin invierto el orden de inserción, es decir que primero inserto los text y luego los select, pues entonces es como si el primer text que inserte no existiera...
En el archivo "calculos.php" solo tengo escrito esto...
Como el tamaño de ambos arrays no son iguales debido a este "error" (o lo que sea) me está dando el siguiente error...
Notice: Undefined offset: .....
¿Alguien sabe por qué está pasando esto?
Mucha gracias de antemano!!
Estoy haciendo "mi primer programa" con jquery y ajax y me he encontrado con el siguiente problema del cual no he podido encontrar la causa.
Veréis, estoy insertando elementos en un formulario dinámico (select y text) de esta forma
jQuery('<select/>',
{
name: "selector_de_aceites[]",
id: "selector_de_aceites[]",
class: "formulario_aceites__input"
id: "selector_de_aceites[]",
class: "formulario_aceites__input"
}).appendTo('#formulario_aceites');
var s = document.getElementsByName("selector_de_aceites[]")[count_aceites];
selector_de_aceites(s, list);
jQuery('<INPUT/>',
{
type: "text",
name: "cantidad_de_aceite[]",
id: "cantidad_de_aceite[]",
class: "formulario_aceites__input"
name: "cantidad_de_aceite[]",
id: "cantidad_de_aceite[]",
class: "formulario_aceites__input"
}).appendTo('#formulario_aceites');
Esto funciona correctamente (en apariencia)..
Luego estoy enviado los datos del formulario a un archivo (calculos.php) de esta otra forma...
$.post("./php/calculos.php", $("#formulario").serialize() + $("#formulario_aceites").serialize(), function(respuesta)
{
/*Esto es para comprobar los nombres de los inputs y aparentemente están bien*/
var form = document.getElementById("formulario_aceites");
for(i=0;i<form.elements.length;i++) console.log(form.elements[i].name);
/*AQUÍ ESTÁ EL PROBLEMA*/
console.log(respuesta);
});
Lo que está pasando es que el primer select insertado es como si no existiera.. y sin invierto el orden de inserción, es decir que primero inserto los text y luego los select, pues entonces es como si el primer text que inserte no existiera...
En el archivo "calculos.php" solo tengo escrito esto...
for ($i=0; $i < count($_POST["cantidad_de_aceite"]); $i++)
{
{
echo $_POST["selector_de_aceites"][$i], "=", $_POST["cantidad_de_aceite"][$i];
}Como el tamaño de ambos arrays no son iguales debido a este "error" (o lo que sea) me está dando el siguiente error...
Notice: Undefined offset: .....
¿Alguien sabe por qué está pasando esto?
Mucha gracias de antemano!!
Valora esta pregunta


0