Foros del Web » Programando para Internet » PHP »

Validar seleccion de combo llenado mysql

Estas en el tema de Validar seleccion de combo llenado mysql en el foro de PHP en Foros del Web. Hola que tal buenas tardes tengo el codigo siguiente: Código PHP: <? //Declarar parametros $dbhost = 'localhost' ; $dbusername = 'root' ; $dbuserpass = 'angel82' ; ...
  #1 (permalink)  
Antiguo 24/02/2010, 18:28
 
Fecha de Ingreso: enero-2010
Mensajes: 15
Antigüedad: 14 años, 3 meses
Puntos: 1
Pregunta Validar seleccion de combo llenado mysql

Hola que tal buenas tardes tengo el codigo siguiente:

Código PHP:
<?
//Declarar parametros
$dbhost='localhost';
$dbusername='root';
$dbuserpass='angel82';
$dbname='desarrollourbano';


if (!empty(
$_POST['validar']))
{
   
//Validar la informacion
   
   
echo "Validando...";

            
}
else
{

   echo 
"<form action=".$_SERVER['PHP_SELF']." method='POST'>";
   
// Conectar a la base de datos
   
mysql_connect($dbhost,$dbusername,$dbuserpass) or die(mysql_error());
   
mysql_select_db($dbname) or die('Error no se puede conectar con la base de datos');

   
//Crear tabla
   
echo "<table >";
     
//crear renglon para giros
     
echo "<tr>";
        echo 
"<td>";
           echo 
"<label style='width: 80px;'> Giros </label>";
        echo 
"</td>";
        echo 
"<td>";
           echo 
"<select name='giros' style= 'width: 270px' >";
              echo 
"<option value=\"\"></option>";


                 
$result mysql_query("SELECT * FROM Giros order by IdGiro");
                 while (
$row mysql_fetch_array($resultMYSQL_ASSOC))
                 {
                    echo 
'<option value="'.$row["IdGiro"].'">'.$row["NombreGiro"].'</option>';
                   }
                   
mysql_free_result($result);
              

           echo 
"</select>";
        echo 
"</td>";
     echo 
"</tr>";
     
//Crear renglon para vialidades
     
echo "<tr>";
        echo 
"<td>";
           echo 
"<label style='width: 80px;'> Vialidades </label>";
        echo 
"</td>";
        echo 
"<td>";
           echo 
"<select name='vialidades' style= 'width: 270px' >";
              echo 
"<option value=\"\"></option>";


                 
$result mysql_query("SELECT * FROM Vialidades order by IdVialidad");
                 while (
$row mysql_fetch_array($resultMYSQL_ASSOC))
                 {
                    echo 
'<option value="'.$row["IdVialidad"].'">'.$row["NombreVialidad"].'</option>';
                   }
                   
mysql_free_result($result);
              

           echo 
"</select>";
        echo 
"</td>";
     echo 
"</tr>";

     
//Crear renglon para uso de suelo
     
echo "<tr>";
        echo 
"<td>";
           echo 
"<label style='width: 80px;'> Uso de suelo</label>";
        echo 
"</td>";
        echo 
"<td>";
           echo 
"<select name='suelo' style= 'width: 270px' >";
              echo 
"<option value=\"\"></option>";


                 
$result mysql_query("SELECT * FROM UsoSuelo order by IdUsoSuelo");
                 while (
$row mysql_fetch_array($resultMYSQL_ASSOC))
                 {
                    echo 
'<option value="'.$row["IdUsoSuelo"].'">'.$row["NombreUsoSuelo"].'</option>';
                   }
                   
mysql_free_result($result);
              

           echo 
"</select>";
        echo 
"</td>";
     echo 
"</tr>";


//Crear renglon para boton validar
     
echo "<tr>";
        echo 
"<td>";
           echo 
"<label style='width: 80px;'> clic en el boton para validar</label>\n\n\n\n";
        echo 
"</td>";
        echo 
"<td align='right'>";
           echo 
"<input type='submit' name='validar' value='Validar'>";
        echo 
"</td>";
     echo 
"</tr>";
   echo 
"</table>";
   echo 
"</form>\n";
}
?>
y lo que deseo es validar:

1.- que si el usuario da clic en el boton validar le mande un mensaje si esta vacio algun combo que debe de seleccionar los datos
2.- enn base a lo seleccionado realizar una consulta posterior en mysql.

desde ya muchisimas gracias, es importante mencionar que soy un poco nuevo con el php
  #2 (permalink)  
Antiguo 24/02/2010, 18:44
Avatar de ElJavista
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: Lima Perú
Mensajes: 2.231
Antigüedad: 17 años, 1 mes
Puntos: 67
Respuesta: Validar seleccion de combo llenado mysql

Para cualquier validación de manera interactiva se usa JavaScript, es muy recomendable volver a validar en el mismo PHP, pero bueno, en todo caso debes hacer eso, aprender algo de JavaScript, lo suficiente poder validar. No me pidas un ejemplo, porque hay cantidades en la Web. Solo busca "validacion con JavaScript" y aparecerán buenos tutoriales. Suerte!
  #3 (permalink)  
Antiguo 24/02/2010, 19:27
 
Fecha de Ingreso: abril-2008
Mensajes: 1
Antigüedad: 16 años
Puntos: 0
Respuesta: Validar seleccion de combo llenado mysql

Hola infosol te doy una manito con el script y de paso te doy unas recomendaciones.

Código PHP:

<?php

//Declarar parametros 
$dbhost='localhost'
$dbusername='root'
$dbuserpass='angel82'
$dbname='desarrollourbano'

//Es mejor usar la función isset(), para comprobar si la variable existe. 
//En cambio si usamos empty(), lo único que hace PHP es verificar si la variable está vacía; pero puede NO puede existir. 
//NOTA: No es lo mismo vacío a que no exista.
if (isset($_POST['validar'])){    

//Esta función lo que hace es tomar los datos pasados por $_POST o por $_GET, en este caso los datos son pasados por $_POST
//Los vuelve a tomar con el mismo nombre y las llama sin tener que poner $_POST['valor']; entonces las llamamos así $valor
foreach($_POST as $clave => $valor){ $$clave trim($valor); }

//Validamos los datos de los combos

//Creamos una variable para el mensaje de error y la iniciamos vacía, para luego concatenar los errores que se nos presente.
$mensaje_error "";

//Calculamos la cantidad de errores que puede tener el formulario. En este caso son los combos que NO ESTEN VACÍOS
//Los combos son tres, por lo tanto los errores probables son tres y les asignamos el valor false.
$error1 $error2 $error3 false;

//Comprobamos que el combo "giros" no esté vacío, si lo está le asignamos a la variable $error1 el valor true.
//Agregamos en la variable $mensaje_error que error se nos presentó.
if(empty($giros)){ $error1 true$mensaje_error .= "Debe seleccionar una opción del combo \"Giros.\" "; }

//Comprobamos que el combo "vialidades" no esté vacío, si lo está le asignamos a la variable $error2 el valor true.
//Agregamos en la variable $mensaje_error que error se nos presentó.
if(empty($vialidades)){ $error2 true$mensaje_error .= "Debe seleccionar una opción del combo \"Vialidades.\" "; }

//Comprobamos que el combo "suelo" no esté vacío, si lo está le asignamos a la variable $error3 el valor true.
//Agregamos en la variable $mensaje_error que error se nos presentó.
if(empty($suelo)){ $error3 true$mensaje_error .= "Debe seleccionar una opción del combo \"Suelo.\" "; }

//Comprobamos si hay errores, sí los hay vamos a mostrar la variable $mensaje_error con los errores que se nos presentó
if(!($error1 || $error2 || $error3)){ $mensaje_error .= "Por favor compruebe los siguientes ERRORES:<br>"; }

//De los contrario la variable $mensaje_error le cargamos que no hay errores.
else{ $mensaje_error .= "En este formulario NO hay Errores."; }

//Por último mostramos la variable $mensaje_error

echo $mensaje_error;
             
}


   echo 
"<form action=".$_SERVER['PHP_SELF']." method='POST'>"
   
// Conectar a la base de datos 
   
mysql_connect($dbhost,$dbusername,$dbuserpass) or die(mysql_error()); 
   
mysql_select_db($dbname) or die('Error no se puede conectar con la base de datos'); 

   
//Crear tabla 
   
echo "<table >"
     
//crear renglon para giros 
     
echo "<tr>"
        echo 
"<td>"
           echo 
"<label style='width: 80px;'> Giros </label>"
        echo 
"</td>"
        echo 
"<td>"
           echo 
"<select name='giros' style= 'width: 270px' >"
              echo 
"<option value=\"\"></option>"


                 
$result mysql_query("SELECT * FROM Giros order by IdGiro"); 
                 while (
$row mysql_fetch_array($resultMYSQL_ASSOC)) 
                 { 
                    echo 
'<option value="'.$row["IdGiro"].'">'.$row["NombreGiro"].'</option>'
                   } 
                   
mysql_free_result($result); 
               

           echo 
"</select>"
        echo 
"</td>"
     echo 
"</tr>"
     
//Crear renglon para vialidades 
     
echo "<tr>"
        echo 
"<td>"
           echo 
"<label style='width: 80px;'> Vialidades </label>"
        echo 
"</td>"
        echo 
"<td>"
           echo 
"<select name='vialidades' style= 'width: 270px' >"
              echo 
"<option value=\"\"></option>"


                 
$result mysql_query("SELECT * FROM Vialidades order by IdVialidad"); 
                 while (
$row mysql_fetch_array($resultMYSQL_ASSOC)) 
                 { 
                    echo 
'<option value="'.$row["IdVialidad"].'">'.$row["NombreVialidad"].'</option>'
                   } 
                   
mysql_free_result($result); 
               

           echo 
"</select>"
        echo 
"</td>"
     echo 
"</tr>"

     
//Crear renglon para uso de suelo 
     
echo "<tr>"
        echo 
"<td>"
           echo 
"<label style='width: 80px;'> Uso de suelo</label>"
        echo 
"</td>"
        echo 
"<td>"
           echo 
"<select name='suelo' style= 'width: 270px' >"
              echo 
"<option value=\"\"></option>"


                 
$result mysql_query("SELECT * FROM UsoSuelo order by IdUsoSuelo"); 
                 while (
$row mysql_fetch_array($resultMYSQL_ASSOC)) 
                 { 
                    echo 
'<option value="'.$row["IdUsoSuelo"].'">'.$row["NombreUsoSuelo"].'</option>'
                   } 
                   
mysql_free_result($result); 
               

           echo 
"</select>"
        echo 
"</td>"
     echo 
"</tr>"


//Crear renglon para boton validar 
     
echo "<tr>"
        echo 
"<td>"
           echo 
"<label style='width: 80px;'> clic en el boton para validar</label>\n\n\n\n"
        echo 
"</td>"
        echo 
"<td align='right'>"
           echo 
"<input type='submit' name='validar' value='Validar'>"
        echo 
"</td>"
     echo 
"</tr>"
   echo 
"</table>"
   echo 
"</form>\n"

?>
Espero que te sirva.

Saludos.- Charly
  #4 (permalink)  
Antiguo 26/02/2010, 20:44
 
Fecha de Ingreso: enero-2010
Mensajes: 15
Antigüedad: 14 años, 3 meses
Puntos: 1
De acuerdo Respuesta: Validar seleccion de combo llenado mysql

Muchisimas gracias Charly me ayudo bastante, preferi implementar tu solucion a una que ya habia diseñado en javascript y que anexo de igual manera por si a alguien le ayuda...

el objetivo de la funcion es cancelar el clic del boton hasta que esten seleccionados los datos de los tres combos y hasta entonces puede continuar...

este es el script:

Código:
<html>
   <head>
      <script language="javascript" type="text/javascript">
          function fn_validar(valor){
             if(fn_obtener_valor(valor.giros)=="")
                return false;
             if(fn_obtener_valor(valor.vialidades)=="")
               return false;
             if(fn_obtener_valor(valor.suelo)=="")
                return false;
                return true;
            };
    function fn_obtener_valor(valor){
        var indice = valor.selectedIndex
        var valor = valor.options[indice].value 
        return valor;
    }
</script> 
</head>
</html>
Y esto va en en formulario

Código:
onSubmit='return fn_validar(this);'
  #5 (permalink)  
Antiguo 01/03/2010, 09:28
 
Fecha de Ingreso: enero-2010
Mensajes: 15
Antigüedad: 14 años, 3 meses
Puntos: 1
Respuesta: Validar seleccion de combo llenado mysql

Código PHP:
//Esta función lo que hace es tomar los datos pasados por $_POST o por $_GET, en este caso los datos son pasados por $_POST
//Los vuelve a tomar con el mismo nombre y las llama sin tener que poner $_POST['valor']; entonces las llamamos así $valor
foreach($_POST as $clave => $valor){ $$clave trim($valor); }

//Validamos los datos de los combos

//Creamos una variable para el mensaje de error y la iniciamos vacía, para luego concatenar los errores que se nos presente.
$mensaje_error "";

//Calculamos la cantidad de errores que puede tener el formulario. En este caso son los combos que NO ESTEN VACÍOS
//Los combos son tres, por lo tanto los errores probables son tres y les asignamos el valor false.
$error1 $error2 $error3 false;

//Comprobamos que el combo "giros" no esté vacío, si lo está le asignamos a la variable $error1 el valor true.
//Agregamos en la variable $mensaje_error que error se nos presentó.
if(empty($giros)){ $error1 true$mensaje_error .= "Debe seleccionar una opción del combo \"Giros.\" "; }

//Comprobamos que el combo "vialidades" no esté vacío, si lo está le asignamos a la variable $error2 el valor true.
//Agregamos en la variable $mensaje_error que error se nos presentó.
if(empty($vialidades)){ $error2 true$mensaje_error .= "Debe seleccionar una opción del combo \"Vialidades.\" "; }

//Comprobamos que el combo "suelo" no esté vacío, si lo está le asignamos a la variable $error3 el valor true.
//Agregamos en la variable $mensaje_error que error se nos presentó.
if(empty($suelo)){ $error3 true$mensaje_error .= "Debe seleccionar una opción del combo \"Suelo.\" "; }

//Comprobamos si hay errores, sí los hay vamos a mostrar la variable $mensaje_error con los errores que se nos presentó
if(!($error1 || $error2 || $error3)){ $mensaje_error .= "Por favor compruebe los siguientes ERRORES:<br>"; }

//De los contrario la variable $mensaje_error le cargamos que no hay errores.
else{ $mensaje_error .= "En este formulario NO hay Errores."; }

//Por último mostramos la variable $mensaje_error

echo $mensaje_error
Buenos dias, charly implemente la solucion que amablemente se envio pero sucede que me manda el mensaje de error "Por favor verifique los siguientes errores" sera que esta cambiado el mensaje o porque sera? desde ya muchas gracias-....

Etiquetas: combo, mysql, seleccion
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 12:35.