Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/02/2016, 13:24
aomargenet
 
Fecha de Ingreso: febrero-2016
Ubicación: Mallorca
Mensajes: 5
Antigüedad: 8 años, 10 meses
Puntos: 0
Pregunta Validar campos con php y mostrarlos en el formulario

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
  1. <form name="encuesta" method="post" action="encuesta1.php">
  2.       <h3 class="encuesta1">1. Soy:</h3>
  3.       <label><input type="checkbox" value="estudiante" name="opcion1[]" />Estudiante</label>
  4.       <label><input type="checkbox" value="academico" name="opcion1[]" />Académico/ca</label>
  5.       <label><input type="checkbox" value="investigador" name="opcion1[]" />Investigador/a</label>
  6.       <label><input type="checkbox" value="profesional" name="opcion1[]"/>Profesional</label>
  7.       <label><input type="checkbox" value="autonomo" name="opcion1[]"/>Autónomo/a</label>
  8.       <label><input type="checkbox" value="empleado" name="opcion1[]"/>Empleado/a</label>
  9.       <label><input type="checkbox" value="funcionario" name="opcion1[]"/>Funcionario/a</label><br><br>
  10.       <h3 class="encuesta1">2. Participo/tengo experiencia en trabajos comunitarios</h3>
  11.       <label><input type="radio" value="si" name="opcion2[]"/>Si</label>
  12.       <label><input type="radio" value="no" name="opcion2[]"/>No</label><br><br>
  13.       <h3 class="encuesta1">Si lo hace desde una ONG (favor indicar el nombre y demás datos):</h3>
  14.       <textarea name="expong" style="width:90%"></textarea><br><br>
  15.       <h3 class="encuesta1">3. Me gustaría participar en proyectos comunitarios locales e internacionales.</h3>
  16.       <label><input type="radio" value="asiduamente" name="opcion3[]"/>Asiduamente</label>
  17.       <label><input type="radio" value="esporadicamente" name="opcion3[]"/>Esporádicamente</label>
  18.       <label><input type="radio" value="tal ves" name="opcion3[]"/>Tal vez</label><br><br>
  19.       <h3 class="encuesta1">4. La responsabilidad social individual/colectiva debería estar en los programas educativos.</h3>
  20.       <label><input type="radio" value="Mas" name="opcion4[]"/>Más</label>
  21.       <label><input type="radio" value="Mucho mas" name="opcion4[]"/>Mucho más</label>
  22.       <label><input type="radio" value="No se" name="opcion4[]"/>No se</label>
  23.       <label><input type="radio" value="No" name="opcion4[]"/>No</label><br><br>
  24.       <h3 class="encuesta1">5. Los distintos colectivos sociales deberían ser consultados por el Estado.</h3>
  25.       <label><input type="radio" value="Igual que ahora" name="opcion5[]"/>Igual que ahora</label>
  26.       <label><input type="radio" value="Mas" name="opcion5[]"/>Más</label>
  27.       <label><input type="radio" value="Mucho mas" name="opcion5[]"/>Mucho más</label>
  28.       <label><input type="radio" value="No se" name="opcion5[]"/>No se</label><br><br>
  29.       <h3 class="encuesta1">6. Conozco la labor de ARC•PEACE.</h3>
  30.       <label><input type="checkbox" value="No" name="opcion6[]"/>No</label>
  31.       <label><input type="checkbox" value="Algo" name="opcion6[]"/>Algo</label>
  32.       <label><input type="checkbox" value="Bastante" name="opcion6[]"/>Bastante</label>
  33.       <label><input type="checkbox" value="Deseo conocer mas" name="opcion6[]"/>Deseo conocer más</label>
  34.       <label><input type="checkbox" value="Simpatizo" name="opcion6[]"/>Simpatizo</label>
  35.       <label><input type="checkbox" value="Soy miembro" name="opcion6[]"/>Soy miembro</label><br><br>
  36.       <h3 class="encuesta1">7. Conozco la labor de Arquitectos Sin Fronteras.</h3>
  37.       <label><input type="checkbox" value="No" name="opcion7[]"/>No</label>
  38.       <label><input type="checkbox" value="Algo" name="opcion7[]"/>Algo</label>
  39.       <label><input type="checkbox" value="Bastante" name="opcion7[]"/>Bastante</label>
  40.       <label><input type="checkbox" value="Deseo conocer mas" name="opcion7[]"/>Deseo conocer más</label>
  41.       <label><input type="checkbox" value="Simpatizo" name="opcion7[]"/>Simpatizo</label>
  42.       <label><input type="checkbox" value="Soy miembro" name="opcion7[]"/>Soy miembro</label><br><br>
  43.       <h3 class="encuesta1">8. Conozco la labor de ARC•PEACE Iberoamérica</h3>
  44.       <label><input type="checkbox" value="No" name="opcion8[]"/>No</label>
  45.       <label><input type="checkbox" value="Algo" name="opcion8[]"/>Algo</label>
  46.       <label><input type="checkbox" value="Bastante" name="opcion8[]"/>Bastante</label>
  47.       <label><input type="checkbox" value="Deseo conocer mas" name="opcion8[]"/>Deseo conocer más</label>
  48.       <label><input type="checkbox" value="Simpatizo" name="opcion8[]"/>Simpatizo</label>
  49.       <label><input type="checkbox" value="Soy miembro" name="opcion8[]"/>Soy miembro</label><br><br>
  50.       <h3 class="encuesta1">9. Tengo información sobre Cambio Climático.</h3>  
  51.       <label><input type="checkbox" value="Bastante" name="opcion9[]"/>No</label>
  52.       <label><input type="checkbox" value="Deseo conocer mas" name="opcion9[]"/>Alguna</label>
  53.       <label><input type="checkbox" value="Simpatizo" name="opcion9[]"/>Bastante</label>
  54.       <label><input type="checkbox" value="Soy miembro" name="opcion9[]"/>Deseo conocer más</label><br><br>
  55.       <h3 class="encuesta1">10. Tengo información sobre HABITAT III.</h3>  
  56.       <label><input type="checkbox" value="Bastante" name="opcion10[]"/>No</label>
  57.       <label><input type="checkbox" value="Deseo conocer mas" name="opcion10[]"/>Alguna</label>
  58.       <label><input type="checkbox" value="Simpatizo" name="opcion10[]"/>Bastante</label>
  59.       <label><input type="checkbox" value="Soy miembro" name="opcion10[]"/>Deseo conocer más</label><br><br>
  60.       <label><input type="submit" value="Enviar" name="submit"/></label>
  61. </form>

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?