Estoy automatizando una función, para no tener que crear un a función nueva cada vez que creo un formulario, la idea es sencilla, en el id de cada elemento le asigno un número:
Código:
id="elemento1"
id="elemento2"
id="elemento3"
...
luego para enviar el formulario:
Código HTML:
<form name="for" action="" onSubmit="formulario('url','x')"> <--- la x es el numero de elementos que tiene el formulario si pongo 4 inputs, por ejemplo, pongo un 4
y aquí el ajax en cuestión:
Código HTML:
function nuevoAjax()
{
var xmlhttp=false;
try
{
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (E)
{
xmlhttp = false;
}
}
if (!xmlhttp && typeof XMLHttpRequest!='undefined')
{
xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
}
function formulario(url,elementos)
{
ele = new Array();
var element, ele1, elemento;
contenedor = document.getElementById("detalles");
for(var i=1; i<=elementos; i++)
{
element = 'elemento' + i;
ele[i] = document.getElementById(element).value;
}
ajax=nuevoAjax();
ajax.open("POST",url,true);
ajax.onreadystatechange=function()
{
if (ajax.readyState==4)
{
contenedor.innerHTML = ajax.responseText;
}
else
{
contenedor.innerHTML = 'Cargando...';
}
}
ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
for(var i=1; i<=elementos; i++)
{
ele1 = 'elemento' + i;
if(ele1 == 'elemento1')
{
elemento = ele1 + '=' + ele[i];
}
else if(ele1 != 'elemento1')
elemento += '&' + ele1 + '=' + ele[i];
}
ajax.send(elemento);
}
Pero no acaba de funcionar, ¿donde esta el fallo?, gracias
bichomen