Hola que tal...
Tengo un formulario, el cual, dependiendo del resultado de un <select>, ejecuta ajax para pintar en la celda de abajo ya sea uno o bien dos campos de texto más, ya que dependiendo del usuario, se necesitan más o menos campos para el registro. Todo eso vá muy bien, no tengo problema para que me lo haga.
El problema es que el botón de enviar el formulario ejecuta otro ajax en el cual envío el formulario y estos campos pontados no son enviados, de hecho el ajax no se ejecuta si agrego esos campos. Mi código es el siguiente.
formulario.php
Código PHP:
<select name="tusu" class="navLink" id="tusu" onChange="chkTipoUsu();">
<option value="-99" selected>Selecciona de la lista</option>
<option value="2">Vendedora</option>
<option value="3">Expositor</option>
</select></td>
</tr>
<tr>
<td colspan="2" align="center" id="showajax"> </td>
</tr>
1er ajax
Código PHP:
contenedor = document.getElementById('showajax');
tipo = document.getElementById('tusu').value;
ajax=nuevoAjax();
ajax.open("GET", "../ajax/afusu.php?d1="+tipo,true);
ajax.onreadystatechange=function() {
if (ajax.readyState==4) {
contenedor.innerHTML = ajax.responseText
}
}
ajax.send(null)
2do ajax
Código PHP:
resul = document.getElementById('registro');
todo = new Array(9);
d1= document.getElementById('tusu').value;
d2 = document.getElementById('nom').value;
d3 = document.getElementById('pat').value;
d4 = document.getElementById('mat').value;
d5 = document.getElementById('tel').value;
d6 = document.getElementById('fax').value;
d7 = document.getElementById('mail').value;
todo[1] = d1;
todo[2] = d2;
todo[3] = d3;
todo[4] = d4;
todo[5] = d5;
todo[6] = d6;
todo[7] = d7;
if(tusu == 2)
{
todo[8] = document.getElementById('usu').value;
todo[9] = document.getElementById('cla').value;
}else if(tusu == 3)
todo[8] = document.getElementById('lic').value;
ajax=nuevoAjax();
ajax.open("POST", "../ajax/xusu.php",true);
ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); // Cabecera para envío de Formulario
ajax.onreadystatechange=function() {
if (ajax.readyState==4) {
resul.innerHTML = ajax.responseText
}
}
ajax.send("d1="+todo)
Y bueno, todo falla en esta parte de ese segundo ajax...
if(tusu == 2)
{
todo[8] = document.getElementById('showajax').value;
todo[9] = document.getElementById('cla').value;
}else if(tusu == 3)
todo[8] = document.getElementById('lic').value;
que es donde agrego los valores de los campos de texto pintados por el pirmer ajax.
Saludos!!