Foros del Web » Programando para Internet » PHP »

input variables = dificil validacion

Estas en el tema de input variables = dificil validacion en el foro de PHP en Foros del Web. Mi problema es el siguiente yo quiero generar una encuesta para eso hago un formulario donde pido el titulo y el numero de opciones o ...
  #1 (permalink)  
Antiguo 03/12/2004, 10:15
Avatar de The_Dark_Roy  
Fecha de Ingreso: enero-2004
Mensajes: 218
Antigüedad: 13 años, 11 meses
Puntos: 0
input variables = dificil validacion

Mi problema es el siguiente yo quiero generar una encuesta para eso hago un formulario donde pido el titulo y el numero de opciones o respuestas como se ve a continuacion
Código PHP:
<form action="admin_crear_encuesta2.php" method="post">
                <
table border="0" cellpadding="0" cellspacing="0">
                    <
tr>
                        <
td height="50"></td>
                    </
tr>
                    <
tr>
                        <
td class="titulo" colspan="2">Creacion de una Encuesta</td>
                    </
tr>
                    <
tr>
                        <
td height="30"></td>
                    </
tr>
                    <
tr>
                        <
td class="texto">Titulo:</td>
                        <
td><input class="texto" type="text" name="titulo_env"></td>
                    </
tr>
                    <
tr>
                        <
td height="20"></td>
                    </
tr>
                    <
tr>
                        <
td class="texto">N&ordmde Respuestas:</td>
                        <
td><input class="texto" type="text" name="num_resp_env"></td>
                    </
tr>
                    <
tr>
                        <
td height="20"></td>
                    </
tr>
                    <
tr>
                        <
td colspan="2" align="center"><input class="texto" type="reset" value="Limpiar"><input class="texto" type="submit" value="Crear"></td>
                    </
tr>
                </
table>
                </
form
estos datos son enviados a una pagina donde genero automaticamente unos input como muestro a continuacion

Código PHP:

<form action="admin_crear_encuesta3.php" method="post">
                    <input type="hidden" value="<?php echo"$titulo_env"?>" name="titulo_env">
                    <input type="hidden" value="<?php echo"$num_resp_env"?>" name="num_resp_env">
                <table border="0" cellpadding="0" cellspacing="0">
                    <tr>
                        <td height="50"></td>
                    </tr>
                    <tr>
                        <td colspan="2" class="titulo"><?php echo"$titulo_env"?></td>
                    </tr>
                    <tr>
                        <td height="20"></td>
                    </tr>
                    <?php
                    $i
=1;
                        while(
$i<=$num_resp_env){
                    
?>
                    <tr>
                        <td class="texto">Pregunta <?php echo"$i"?> :</td>
                        <td><input class="texto" type="text" name="pregunta[]"></td>
                    </tr>
                    <tr>
                        <td height="10"></td>
                    </tr>
                    <?php
                        $i
++;
                        }
                    
?>
                    <tr>
                        <td colspan="2" align="center"><input class="texto" type="reset" value="Limpiar"><input class="texto" type="submit" value="Crear"></td>
                    </tr>
                </table>
                </form>
hasta hay no tengo problema mi problema empieza cuando quiero validar los campos que no esten vacios mi problema es que como los campos de respuestas son variables no se como validarlos a todos ya que si fueran fijos bastaria con colocarlos todos y ya pero aqui no se cuantos campos tengo
se me acorre algo asi de meterlos en un arreglo a lo mejor hay otra forma asi es loq ue se me ha ocurrido

Código PHP:
<?php
$id_usuario
=$_SESSION["id_usuario"];
$i=1;

while(
$i<=$num_resp_env){
    if(empty(
$pregunta[$i])){
        
header("Location: admin_crear_encuesta2.php");
    }
}
?>
alguiien tiene una idea mejor?
__________________
ojala te hayas quitado la venda

http://www.surire.cl
http://www.uta.cl
  #2 (permalink)  
Antiguo 03/12/2004, 10:44
Avatar de Untergang  
Fecha de Ingreso: abril-2003
Ubicación: México
Mensajes: 138
Antigüedad: 14 años, 7 meses
Puntos: 0
Puedes poner una funcion en JS que se mande llamar antes del submit:

<SCRIPT language="JavaScript" type="text/JavaScript">
function validar()
{
campos = forma.elements;
for(i=0;i<campos.length;i++)
{
if(campos[i].value == '' && campos[i].type == 'text')
{
alert("Debe poner algo");
return false;
}
}
}
</SCRIPT>
__________________
<<No hay Luz sin Oscuridad>>
  #3 (permalink)  
Antiguo 03/12/2004, 13:47
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
En tu caso .. pregunta[] ya es un array para PHP .. así que puedes recorrerlo como tal con un bucle tipo foreach()

Código PHP:
foreach($_POST['pregunta'] as $pregun=>$valor){
   
// y aquí validas ..
  
if (empty($pregun)){
      
header("Location: admin_crear_encuesta2.php"); 
      exit;
  }

Un saludo,
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:17.