Muy buenas a todos, lo que estoy intentando aplicar en mi formulario es una validación de los input, necesito que al menos haya un campo seleccionado de cada punto para proceder con el envío.
Este es mi formulario:
Código HTML:
Ver original<form name="encuesta" method="post" action="encuesta1.php"> <h3 class="encuesta1">1. Soy:
</h3> <label><input type="checkbox" value="estudiante" name="opcion1[]" />Estudiante
</label> <label><input type="checkbox" value="academico" name="opcion1[]" />Académico/ca
</label> <label><input type="checkbox" value="investigador" name="opcion1[]" />Investigador/a
</label> <label><input type="checkbox" value="profesional" name="opcion1[]"/>Profesional
</label> <label><input type="checkbox" value="autonomo" name="opcion1[]"/>Autónomo/a
</label> <label><input type="checkbox" value="empleado" name="opcion1[]"/>Empleado/a
</label> <label><input type="checkbox" value="funcionario" name="opcion1[]"/>Funcionario/a
</label><br><br> <h3 class="encuesta1">2. Participo/tengo experiencia en trabajos comunitarios
</h3> <h3 class="encuesta1">Si lo hace desde una ONG (favor indicar el nombre y demás datos):
</h3> <h3 class="encuesta1">3. Me gustaría participar en proyectos comunitarios locales e internacionales.
</h3> <label><input type="radio" value="asiduamente" name="opcion3[]"/>Asiduamente
</label> <label><input type="radio" value="esporadicamente" name="opcion3[]"/>Esporádicamente
</label> <h3 class="encuesta1">4. La responsabilidad social individual/colectiva debería estar en los programas educativos.
</h3> <label><input type="radio" value="Mucho mas" name="opcion4[]"/>Mucho más
</label> <h3 class="encuesta1">5. Los distintos colectivos sociales deberían ser consultados por el Estado.
</h3> <label><input type="radio" value="Igual que ahora" name="opcion5[]"/>Igual que ahora
</label> <label><input type="radio" value="Mucho mas" name="opcion5[]"/>Mucho más
</label> <h3 class="encuesta1">6. Conozco la labor de ARC•PEACE.
</h3> <label><input type="checkbox" value="Bastante" name="opcion6[]"/>Bastante
</label> <label><input type="checkbox" value="Deseo conocer mas" name="opcion6[]"/>Deseo conocer más
</label> <label><input type="checkbox" value="Simpatizo" name="opcion6[]"/>Simpatizo
</label> <label><input type="checkbox" value="Soy miembro" name="opcion6[]"/>Soy miembro
</label><br><br> <h3 class="encuesta1">7. Conozco la labor de Arquitectos Sin Fronteras.
</h3> <label><input type="checkbox" value="Bastante" name="opcion7[]"/>Bastante
</label> <label><input type="checkbox" value="Deseo conocer mas" name="opcion7[]"/>Deseo conocer más
</label> <label><input type="checkbox" value="Simpatizo" name="opcion7[]"/>Simpatizo
</label> <label><input type="checkbox" value="Soy miembro" name="opcion7[]"/>Soy miembro
</label><br><br> <h3 class="encuesta1">8. Conozco la labor de ARC•PEACE Iberoamérica
</h3> <label><input type="checkbox" value="Bastante" name="opcion8[]"/>Bastante
</label> <label><input type="checkbox" value="Deseo conocer mas" name="opcion8[]"/>Deseo conocer más
</label> <label><input type="checkbox" value="Simpatizo" name="opcion8[]"/>Simpatizo
</label> <label><input type="checkbox" value="Soy miembro" name="opcion8[]"/>Soy miembro
</label><br><br> <h3 class="encuesta1">9. Tengo información sobre Cambio Climático.
</h3> <label><input type="checkbox" value="Bastante" name="opcion9[]"/>No
</label> <label><input type="checkbox" value="Deseo conocer mas" name="opcion9[]"/>Alguna
</label> <label><input type="checkbox" value="Simpatizo" name="opcion9[]"/>Bastante
</label> <label><input type="checkbox" value="Soy miembro" name="opcion9[]"/>Deseo conocer más
</label><br><br> <h3 class="encuesta1">10. Tengo información sobre HABITAT III.
</h3> <label><input type="checkbox" value="Bastante" name="opcion10[]"/>No
</label> <label><input type="checkbox" value="Deseo conocer mas" name="opcion10[]"/>Alguna
</label> <label><input type="checkbox" value="Simpatizo" name="opcion10[]"/>Bastante
</label> <label><input type="checkbox" value="Soy miembro" name="opcion10[]"/>Deseo conocer más
</label><br><br>
encuesta1.php:
Código PHP:
$host_name = "...";
$user_name = "...";
$password = "...";
$database = "...";
$connect=new mysqli($host_name, $user_name, $password, $database);
if ($connect->connect_errno){
echo "Error al conectar con servidor MySQL: " . mysqli_connect_error();
}
$soy = '';
if ( isset($_POST['opcion1']) ){
$soy = implode (' ' , $_POST['opcion1']);
}
$participo = '';
if ( isset($_POST['opcion2']) ){
$participo = implode (' ' , $_POST['opcion2']);
}
$expong = $_POST['expong'];
$megustaria = '';
if ( isset($_POST['opcion3']) ){
$megustaria = implode (' ' , $_POST['opcion3']);
}
$responsabilidadsocial = '';
if ( isset($_POST['opcion4']) ){
$responsabilidadsocial = implode (' ' , $_POST['opcion4']);
}
$consultadosestados = '';
if ( isset($_POST['opcion5']) ){
$consultadosestados = implode (' ' , $_POST['opcion5']);
}
$sobrearcpeace = '';
if ( isset($_POST['opcion6']) ){
$sobrearcpeace = implode (' ' , $_POST['opcion6']);
}
$sobreasf = '';
if ( isset($_POST['opcion7']) ){
$sobreasf = implode (' ' , $_POST['opcion7']);
}
$sobrearcpi = '';
if ( isset($_POST['opcion8']) ){
$sobrearcpi = implode (' ' , $_POST['opcion8']);
}
$infocambioclimatico = '';
if ( isset($_POST['opcion9']) ){
$infocambioclimatico = implode (' ' , $_POST['opcion9']);
}
$habitatIII = '';
if ( isset($_POST['opcion10']) ){
$habitatIII = implode (' ' , $_POST['opcion10']);
}
if (isset($_POST["submit"])){
if (empty($_POST['opcion1'])) {
echo "Debe seleccionar almenos 1 opcion del punto 1:";
}
else{
mysqli_query ($connect,"INSERT INTO encuesta1 (SOY, PARTICIPO, EXPONG, MEGUSTARIA, RESPONSABILIDADSOCIAL, CONSULTADOSESTADOS, SOBREARCPEACE, SOBREASF, SOBREARCPI, OTRAONG, INFOCAMBIOCLIMATICO, HABITATIII) VALUES('$soy', '$participo', '$expong', '$megustaria', '$responsabilidadsocial', '$consultadosestados', '$sobrearcpeace', '$sobreasf', '$sobrearcpi', '$otraong', '$infocambioclimatico', '$habitatIII')");
}
}
mysqli_close ($connect);
Estoy usando
Código PHP:
if (empty($_POST['opcion1'])) {echo "Debe seleccionar almenos 1 opcion del punto 1:";
para validar el primer punto del formulario (que no esté vacío). Hasta aquí va todo bien, lo que ocurre es que deseo que el mensaje de error se visualice en algún lugar del formulario (abajo,arriba,etc) y no en encuesta1.php. Si existe la forma de hacerlo con php mejor, pero si no me queda otra opción también me vale javascript. Cómo lo hago?