Foros del Web » Programando para Internet » PHP »

validad un select que es php... no html

Estas en el tema de validad un select que es php... no html en el foro de PHP en Foros del Web. alguien me podria ayudar a validad un select ke tengo en php ... me refiero a que no me deje vacio el select que de ...
  #1 (permalink)  
Antiguo 09/11/2011, 13:31
 
Fecha de Ingreso: octubre-2011
Mensajes: 11
Antigüedad: 12 años, 6 meses
Puntos: 0
Pregunta validad un select que es php... no html

alguien me podria ayudar a validad un select ke tengo en php ... me refiero a que no me deje vacio el select que de ley tenga ke seleccionar un elemento...

tengo el siguiente codigo...
Código PHP:
<?php
// Array que vincula los IDs de los selects declarados en el HTML con el nombre de la tabla donde se encuentra su contenido
$listadoSelects1=array(
"estado"=>"itsp_estados",
"ciudad"=>"itsp_ciudad",
"colonia"=>"itsp_colonias"
);

function 
validaSelect1($selectDestino1)
{
    
// Se valida que el select enviado via GET exista
    
global $listadoSelects1;
    if(isset(
$listadoSelects1[$selectDestino1])) return true;
    else return 
false;
}

function 
validaOpcion1($opcionSeleccionada1)
{
    
// Se valida que la opcion seleccionada por el usuario en el select tenga un valor numerico
    
if(is_numeric($opcionSeleccionada1)) return true;
    else return 
false;
}

$selectDestino1=$_GET["select"]; $opcionSeleccionada1=$_GET["opcion"];

if(
validaSelect1($selectDestino1) && validaOpcion1($opcionSeleccionada1))
{
    
$tabla1=$listadoSelects1[$selectDestino1];
    include 
'conexion2.php';
    
conectado();
    
$consulta1=mysql_query("SELECT iIdCiudad, cNombre FROM $tabla1 WHERE iidestado='$opcionSeleccionada1' order by cNombre ") or die(mysql_error());
    
desconectado();
    
    
// Comienzo a imprimir el select
    
echo "<select name='".$selectDestino1."' id='".$selectDestino1."' onChange='cargaContenido1(this.id);'>";
    echo 
"<option value='0'>ELIGE</option>";
    while(
$registro1=mysql_fetch_row($consulta1))
    {
    echo 
"<option value='".strtoupper($registro1[0])."'>".utf8_encode(strtoupper($registro1[1]))."</option>";
    }            
    echo 
"</select>";
}
?>
la verdad n se donde color a ke elemento jalar para validar este selec... porke cuando sea 0 ... me pide de ley ke seleccione un elemento...
por favor ya me desespero esto y no se como validarlo...
  #2 (permalink)  
Antiguo 09/11/2011, 13:55
 
Fecha de Ingreso: julio-2010
Mensajes: 275
Antigüedad: 13 años, 10 meses
Puntos: 21
Respuesta: validad un select que es php... no html

Prueba haciendolo en esta función
Código PHP:
Ver original
  1. function validaSelect1($selectDestino1)
  2. {
  3.     // Se valida que el select enviado via GET exista
  4.     global $listadoSelects1;
  5.     if(isset($listadoSelects1[$selectDestino1]) && !empty($listadoSelects1[$selectDestino1])) return true;
  6.     else return false;
  7. }
  #3 (permalink)  
Antiguo 09/11/2011, 20:58
 
Fecha de Ingreso: octubre-2011
Mensajes: 11
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: validad un select que es php... no html

creo que si esta algo complicado ... lo que pasa que esto es por medio de un javascript... lo que pasa que mi pagina principal tiene 3 select ligados.. el principal es estado, despues ciudad y de ultimo colonia... pero estado la funcion ta dentro de principal, en cambio los otros dos los envia a este php, el de estado si me lo valida con el spry, pero si quiero que me valide los otros dos nome lo hace a qui te pongo mi codigo,
Código PHP:
 ><span id="spryselect2">
                    <select name='estado' id='estado' onChange='cargaContenido1(this.name)'>
                      <option value='0'>ELIGE</option>
                      <?php 
                            conectado
();
                            
$consulta1 =mysql_query("SELECT iIdEstado, cNombre FROM itsp_estados order by cNombre");
                            
desconectado();

                        while(
$registro1=mysql_fetch_row($consulta1))
                        {
                            echo 
"<option value='".strtoupper($registro1[0])."'>".utf8_encode(strtoupper($registro1[1]))."</option>";
                        }
                
?>
                    </select>
                    <span class="selectInvalidMsg">Seleccione un elemento válido.</span><span class="selectRequiredMsg">Seleccione un elemento.</span></span>
hasta aqui es estado y ahi si me muestra la validacion si es 0 me sale el msg, pero en ciudad
ya lo puse lo mismo y no me lo hace

Código PHP:
<span id="spryselect1">
                    <
select disabled="disabled" name="ciudad" id="ciudad">
                      <
option value="0">Selecciona opci&oacute;n...</option>
                    </
select>
                    <
span class="selectInvalidMsg">Seleccione un elemento válido.</span><span class="selectRequiredMsg">Seleccione un elemento.</span></span
obvio aky como es por medio del java script esto es lo que me muestra antes de ke selecciones estado, ya que se seleciona estado me manda al php que es ke pegue arriba, y me muestra el contenido... pero la verdad ya probe varias cosas para validarlo y me tire un msj pero no lo hace...
te agradeceria si te tomas la molestia de ayudarme... lo que me pusiste no es lo que queria..
gracias..
  #4 (permalink)  
Antiguo 09/11/2011, 22:05
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: validad un select que es php... no html

Bueno, una pequeña aclaracion... los select son HTML y no PHP, por supuesto, puedes crearlos con PHP, pero eso no cambia que sea un elemento mas del HTML de tu pagina.

Dicho esto, en PHP solo vas a recibir una relacion "nombre <=> valor" para cada campo de tu formulario y, aunque tuvieras 3528 opciones en el select... al procesar el formulario PHP recibe solo el valor seleccionado.

Luego, creo que te estas complicando mucho la vida al crear una tabla para cada estado, lo que te complicaria poder realizar busquedas o alguna otra operacion con ciudades de diferentes estados, aparte claro, de los problemas que ya tienes ahora.

Aqui mismo en FDW hay varios aportes sobre selects dependientes, creo debe haber tambien de pais-ciudad-estado, usa el buscador.

Suerte!
__________________
- León, Guanajuato
- GV-Foto
  #5 (permalink)  
Antiguo 10/11/2011, 09:47
 
Fecha de Ingreso: octubre-2011
Mensajes: 11
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: validad un select que es php... no html

gracias amigo por responder pero solo son tres tablas... estados, ciudad, colonia... y si entiendo ke como sea ke utilice php siempre al momento de mostrar me genera un codigo html.. pero ahorita ese es el problema ke el primer select esta en html y el otro lo jala del php, ... en verdad agradeceria mucho ke me den una ayudadita ...
  #6 (permalink)  
Antiguo 10/11/2011, 10:07
 
Fecha de Ingreso: octubre-2011
Mensajes: 11
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: validad un select que es php... no html

si tan solo fueran amables y me dijeran si lo ke kiero hacer se puede sino para ke no siga perdiendo mi tiempo... y pues no estoy pidiendo ke me hagan un codigo completo solo ke me den ideas porke la verdad ya me kede sin ellas.. ya no se como validarlo...
  #7 (permalink)  
Antiguo 10/11/2011, 10:12
Avatar de bUllan9ebrio  
Fecha de Ingreso: enero-2011
Ubicación: Chile
Mensajes: 1.128
Antigüedad: 13 años, 3 meses
Puntos: 128
Respuesta: validad un select que es php... no html

Cita:
Iniciado por Triby Ver Mensaje
Bueno, una pequeña aclaracion... los select son HTML y no PHP, por supuesto, puedes crearlos con PHP, pero eso no cambia que sea un elemento mas del HTML de tu pagina.

Dicho esto, en PHP solo vas a recibir una relacion "nombre <=> valor" para cada campo de tu formulario y, aunque tuvieras 3528 opciones en el select... al procesar el formulario PHP recibe solo el valor seleccionado.

Luego, creo que te estas complicando mucho la vida al crear una tabla para cada estado, lo que te complicaria poder realizar busquedas o alguna otra operacion con ciudades de diferentes estados, aparte claro, de los problemas que ya tienes ahora.

Aqui mismo en FDW hay varios aportes sobre selects dependientes, creo debe haber tambien de pais-ciudad-estado, usa el buscador.

Suerte!

Te dieron la respuesta, no es nada más que eso, por favor abre tú mente


Saludos.


__________________
Si no vivimos como pensamos, pronto empezaremos a pensar como vivimos.
Más vale un Gracias sincero, que un número que aumente "popularidad" ¬¬°

Universidad de chile, campeón
  #8 (permalink)  
Antiguo 10/11/2011, 10:21
 
Fecha de Ingreso: octubre-2011
Mensajes: 11
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: validad un select que es php... no html

ma pues creo ke soy bien estupido porke la verdad no lo entiendo o quisa me entendieron mal... yo solo kiero validar el valor del select sea 0 para ke me envie el mensaje de ke tiene ke seleccionar un elemento..., estoy utilizando el spry porke es el generalmente funciona tanto en chrome como en explorer, y pues en el segundo select le puse el spry pero no lo agarra solo el primero...

por lo menos sean un poco mas especificos porke la verdad no entiendo... y disculpen si los molesto pero esto ya me esta causando un gran dolor de cabeza..
  #9 (permalink)  
Antiguo 10/11/2011, 10:33
 
Fecha de Ingreso: octubre-2011
Mensajes: 11
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: validad un select que es php... no html

mi problema no es ligar los estados con ciudades y estos con las colonias.. eso ya lo hago .. solo quiero lograr ke me valide con los tres selects antes de enviar los datos para almacenarlos... que me cheke que los tres se han seleccionado datos para no guardar valores nulos... deberas iluminenme o ke me den una idea mas clara ...
  #10 (permalink)  
Antiguo 10/11/2011, 10:41
Avatar de bUllan9ebrio  
Fecha de Ingreso: enero-2011
Ubicación: Chile
Mensajes: 1.128
Antigüedad: 13 años, 3 meses
Puntos: 128
Respuesta: validad un select que es php... no html

Insisto hazlo como select dependiente y lo otro una validación en js podría ser así :

Código Javascript:
Ver original
  1. function validar(){
  2.       if (document.form.estados.value.length==""){
  3.        alert("Debe Seleccionar Estado")
  4.        document.form.estados.focus()
  5.        return 0;
  6.     }
  7.    /*los demás son iguales*/
  8.     document.form.submit();
  9. }



y en php :

Código PHP:
Ver original
  1. if ($estado=="")
  2. {
  3.   echo "falto estado";
  4. }
  5. //otra forma
  6. if (isset($estado))
  7. {
  8.    echo "pasa";
  9. }
  10. else
  11. {
  12.  echo "no seleccion&oacute;  estado";
  13. }

Saludos


__________________
Si no vivimos como pensamos, pronto empezaremos a pensar como vivimos.
Más vale un Gracias sincero, que un número que aumente "popularidad" ¬¬°

Universidad de chile, campeón
  #11 (permalink)  
Antiguo 10/11/2011, 10:48
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 10 meses
Puntos: 641
Respuesta: validad un select que es php... no html

no entiendo tu código, pero la forma más simple de hacer una validacion es recoger los datos por post en la página que mandas el form y verificar que no sea cero por ejemplo
Código PHP:
Ver original
  1. $var = $_POST['select1'];
  2.  
  3. if($var == ''){
  4.     return false;
  5. }
  #12 (permalink)  
Antiguo 10/11/2011, 11:18
 
Fecha de Ingreso: octubre-2011
Mensajes: 11
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: validad un select que es php... no html

gracias por contestar bUllan9ebrio ... disculpa mi ignorancia pero no lo ke estoy manejando son selects dependientes?.. porke sino se selecciona el primero no se habilita el segundo y asi con el tercero... otra pregunta... entonces no puedo seguir utilizando el sspry tiene ke ser aparte ?..
menciono esto porke ya realice todas las validaciones con el spry y el unico detalle es este ke no me funciona en los dos ultimos selects...
  #13 (permalink)  
Antiguo 10/11/2011, 11:55
Avatar de bUllan9ebrio  
Fecha de Ingreso: enero-2011
Ubicación: Chile
Mensajes: 1.128
Antigüedad: 13 años, 3 meses
Puntos: 128
Respuesta: validad un select que es php... no html

Mira en vez de realizar eso, yo prefiero (opinión personal ), realizarlo en ajax y de esa manera me evito los malos ratos
__________________
Si no vivimos como pensamos, pronto empezaremos a pensar como vivimos.
Más vale un Gracias sincero, que un número que aumente "popularidad" ¬¬°

Universidad de chile, campeón
  #14 (permalink)  
Antiguo 10/11/2011, 12:02
 
Fecha de Ingreso: octubre-2011
Mensajes: 11
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: validad un select que es php... no html

validacion en el mismo ajax?
  #15 (permalink)  
Antiguo 10/11/2011, 12:27
 
Fecha de Ingreso: octubre-2011
Mensajes: 11
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: validad un select que es php... no html

oye disculpa solo la ultima pregunta y te djeo de molesto .. si cambio a ajax las validaciones no tendria el mismo problema ? solo podria hacer la validacion del lado del servidor?...
  #16 (permalink)  
Antiguo 10/11/2011, 14:26
 
Fecha de Ingreso: julio-2010
Mensajes: 275
Antigüedad: 13 años, 10 meses
Puntos: 21
Respuesta: validad un select que es php... no html

Yo lo que hice fue esto:
busqueda.php
Código PHP:
Ver original
  1. function generaSelect()
  2. {
  3.     include 'conexion.php';
  4.     conectar();
  5.     $consulta=pg_query("SELECT id, nombre FROM tabla");
  6.     desconectar();
  7.  
  8.     // Voy imprimiendo el primer select compuesto por los paises
  9.     echo "<select name='select1' id='uno' onChange='cargaContenido(this.id)'>";
  10.     echo "<option value='0'>Elige</option>";
  11.     while($registro=pg_fetch_row($consulta))
  12.     {
  13.         echo "<option value='".$registro[0]."'>".$registro[1]."</option>";
  14.         $_SESSION['array'][]=$registro[0];//Se almacena la primera consulta en el arreglo de sesiones
  15.     }
  16.     echo "</select>";
  17. }
proceso.php
Código PHP:
Ver original
  1. if(validaSelect($selectDestino) && validaOpcion($opcionSeleccionada))
  2. {
  3.     $tabla=$listadoSelects[$selectDestino];
  4.     include 'conexion.php';
  5.     conectar();
  6.     $consulta=pg_query("SELECT id, nombre FROM $tabla WHERE num='$opcionSeleccionada'");
  7.     desconectar();
  8.     // Comienzo a imprimir el select
  9.     echo "<select name='".$selectDestino."' id='".$selectDestino."' onChange='cargaContenido(this.id)'>";
  10.     echo "<option value='0'>Elige</option>";
  11.     while($registro=pg_fetch_row($consulta))
  12.     {
  13.         // Convierto los caracteres conflictivos a sus entidades HTML correspondientes para su correcta visualizacion
  14.         $registro[1]=utf8_encode($registro[1]);
  15.         // Imprimo las opciones del select
  16.         echo "<option value='".$registro[0]."'>".$registro[1]."</option>";
  17.         $_SESSION['array'][]=$registro[0]; //Almaceno los Selects en un arreglo de sesiones
  18.     }
  19.     if ($selectDestino)
  20.     echo "</select>";
  21. }

Y esto en el resultado:
Código PHP:
Ver original
  1. $listadoSelects=array(
  2. "select1"=>"uno",
  3. "select2"=>"dos",
  4. "select3"=>"tres",
  5. "select4"=>"cuatro",
  6. "select5"=>"cinco"
  7. );
  8. /* Si quieras prueba esto descomentandolo para chequear los valores de los selects
  9. echo "uno=\n\n".$_POST['select1'];
  10. echo " dos=\n\n".$_POST['select2'];
  11. echo " tres=\n\n".$_POST['select3'];
  12. echo " cuatro=\n\n".$_POST['select4'];
  13. echo " cinco=\n\n".$_POST['select5'];*/
  14.  
  15.  
  16. $select[1]=$_POST['select1'];
  17. $select[2]=$_POST['select2'];
  18. $select[3]=$_POST['select3'];
  19. $select[4]=$_POST['select4'];
  20. $select[5]=$_POST['select5'];

En este caso tengo 5 selects dependientes, y todos funcionan correctamente, con el arreglo de sesiones

Última edición por Sirrohan; 10/11/2011 a las 14:35
  #17 (permalink)  
Antiguo 11/11/2011, 13:03
 
Fecha de Ingreso: octubre-2011
Mensajes: 11
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: validad un select que es php... no html

emmm ... kiero ke me mestre un msj sino se selecciona algo... no tengo problema en relacionarlos ... solo kiero ke cuando le de submit sino ha selecciionado algo por me diga que tengo ke seleccionar algo...

Etiquetas: html, registro, select, sql, tabla, usuarios
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 10:28.