Hola!!
He leído este post buscando una solución a mi problema y creo que se adapta bastante bien. Pero si no recibo una respuesta en breve abriré uno nuevo con mi duda específica.
Vereis, tengo un formulario en php que necesito validar, no sólo con javascript sino también con xajax.
Os cuento, es un formulario en el que, si pulsas en un radiobutton se despliega el resto del formulario y debes de hacer unas acciones determinadas.
Con javascript valido que se haia seleccionado al menos 1 checkbox de los que muestro, usando el evento onSubmit del formulario.
Luego, también en el evernto onSubmit de ese formulario necesito validar si se han introducido otros datos provenientes de un par de select(la introduccion de esos datos la hago con xajax) preguntando a la base de datos.
Os muestro un esquema de mi formulario
Código PHP:
Ver originalfunction muestraForm($dato1, $dato2)
{
echo"<div id = 'formulario' style='min-height: 800px'>
<table id='itsthetable'>
<form action='./Index.php?action=muestraotroform¶metro=$dato1' method='post' name='formu' id='formu' enctype='multipart/form-data' onSubmit='return xajax_compruebaInserciones(document.formu.dato2.value, document.formu.radiodato.value); javascript: return validaForm(this) '>
.
.
.
<tr>
<th>¿Pregunta?</th>
<td>
<input type='radio' name='radiodato' id='radiodatosi' value='1' onClick='javascript:compruebaSeleccion(this.name, this.value)' />Sí <input type='radio' name='radiodato' id='radiodatono' value='0' onClick='javascript:compruebaSeleccion(this.name, this.value)'/>No
</td>//si elijo sí se muestra el resto del formulario. Si elijo no, se esconde
<td></td>
</tr>
.
.
.//Lo que viene aquí se inserta si todo lo demás es correcto y se pasa al siguiente formulario
<tr>
<th>Grupo de checkbox:</th>
<td><div id='grupo1'>";
$conexion = conectar_intranet();
$consulta = "Select...";
{
echo utf8_encode("<input type='checkbox' name='datos[]' value='$fila[0]' />$fila[1]<br/>"); }
echo"</div></td>
<td><div id='grupo2'>";
$conexion = conectar_intranet();
$consulta = "Select ...";
{
echo utf8_encode("<input type='checkbox' name='datos2[]' value='$fila[0]' />$fila[1]<br/>"); }
echo"</div></td>
</tr>
<tr>
<th>primerSelect: </th>
<td style='width:40%'>
<select name='nombreselect1' id='nombreselect1' value=''>";
$conexion = conectar_intranet();
$consulta = "Select...";
{
echo utf8_encode("<option name='nombreselect1' value='$fila[0]'>$fila[1]</option>"); }
//Con lo siguiente inserto una serie de datos en la bd con xajax
echo"</select>
</td>
<input type='hidden' name='dato2' value='$dato2' />
<td rowspan='2' style='text-align:left'> <img src='images/add.png' onclick='xajax_insertaDatos(document.formu.dato2.value, document.formu.nombreselect1.value, document.formu.nombreselect2.value)' style='cursor:pointer'><div id='respuesta ></div> </td>
</tr>
<tr>
<th>segundo select: </th>
<td style='width:40%'>
<select name='nombreselect2' id='nombreselect2' value=''>";
$conexion = conectar_intranet();
$consulta = "Select...";
{
echo utf8_encode("<option name='nombreselect1' value='$fila[0]'>$fila[1]</option>"); }
echo"</select>
</td>
</tr>
</tbody>
//ahora muestro el botón de submit
<tfoot>
<tr>
<td ><input type='image' src='images/next.png' name='nextformu' value='nextformu' /></td>
<td colspan = '2'><div id='errorform' class='divrojo' style='color:red'></div></td>
</tr>
</tfoot>
</form>
</table>
</div>";
}
onSubmit='return xajax_compruebaInserciones(document.formu.dato2.va lue, document.formu.radiodato.value); javascript: return validaForm(this) '
Sería posible hacer esto??
Gracias!!