Comunidad de diseño web y desarrollo en internet online

Problema con un select al entrar en la página

Citar            
MensajeEscrito el 23 Nov 2012 09:23 am
Hola a tod@s es la primera vez que entro en este foro y espero me podais ayudar:

Tengo un formulario que utilizo para filtrar registros en el hay varios selects y varios checkbox y mi problema esta en los selects para que entendais mejor el problema solo pondre el código de uno de los selects, ante todo tengo que decir que al pulsar el boton de submit se mantiene lo seleccionado en los selects, pero el problema no es ese.
El problema es que al entrar por primera vez a la página donde se encuentra me da un Notice y no se rellena el select, pero si pulso el boton del submit sin seleccionar nada ya que no me deja porque el select no se ha rellenado de la base de datos, desaparece el Notice, se rellena el select y a partir de hay todo funciona perfectamente, solo existe el problema al entrar a la página por primera vez.
Este es el notice:

Código :

Notice: Undefined index: selciudad in C:\wamp\www\Vehiculos\coches.php on line 159
en el código del select pongo la linea que produce el Notice entre 2 comentarios, bien este es mi código:
Principio de la página:

Código PHP :

<?php
      require_once('Connections/ConexionCoches.php');
      $selciudad = isset($_GET["selciudad"])? $_GET["selciudad"]: '';
?>
Este es el select;

Código PHP :

   <select name="selciudad" id="selciudad" class="Guias3">
    <option value="-1" selected>&nbsp;Todas las Ciudades&nbsp;&nbsp;</option>
    <?php
    $tablaciudad = mysql_query("SELECT * FROM provincias  ORDER BY Provincia ASC"); 
    while ($registrociudad  = mysql_fetch_array($tablaciudad ))
    {
 // este es el código que produce el Notice      
 if ($_GET["selciudad"]==$registrociudad['Provincia'])
// este es el código que produce el Notice      

      {
           echo "<option value='".$registrociudad['Provincia']."' selected>&nbsp;&nbsp;".$registrociudad['Provincia']."</option>";
       }else{
           echo "<option value='".$registrociudad['Provincia']."' >&nbsp;&nbsp;".$registrociudad['Provincia']."</option>";
       }
    } 
    mysql_free_result($tablaciudad);
    
    ?>

</select>
y esto es como utilizo la variable $selciudad dentro de mi consulta para que me filtre:

Código :

$sql = "SELECT SQL_CALC_FOUND_ROWS * FROM coches WHERE Activacion = '1' and (Nombre like '%" . $txt_criterio . "%')";
if (isset($_GET['selciudad'])and $_GET['selciudad'] <>'-1') {
      $sql .= "AND coches.Ciudad = '$selciudad' ";
      }else {$sql .= "AND coches.Ciudad <> '-1' ";
}
//Detras de esto va el ORDER BY y el LIMIT no creo que haga falta ponerlos
Una aclaración he hecho un echo de $selciudad cuando entro por primera vez y no me da ningún valor cuando funciona bien sin seleccionar nada el valor de $selciudad es "-1" creo que el problema esta hay pero no veo como solucionarlo.
Me podeis ayudar.
Gracias a tod@s.

Por Unexes

8 de clabLevel



 

msie8
Citar            
MensajeEscrito el 23 Nov 2012 12:19 pm
Hola, deberias pasar el código del formulario... Por cierto, estas usando el método GET o POST??? me suena medio raro mandar un formulario por GET...
Saludos!

Por SinSemilla

Claber

336 de clabLevel



Genero:Masculino  

i am that i am...

firefox
Citar            
MensajeEscrito el 23 Nov 2012 01:00 pm
Estas usando parámetros GET para cargar el select. Entonces para que la página cargue correctamente, en la barra de direcciones debe haber algo como: mipagina.php?selciudad=miciudad
Si no, el valor $_GET['selciudad'] estará indefinido. (Como mencionas, cuando entras la primera vez y el valor es vacio, debes estar usando algo como mipagina.php)

Por -george-

58 de clabLevel



 

Tartarus

firefox
Citar            
MensajeEscrito el 24 Nov 2012 10:13 am
SinSemilla este es mi formulario:

Código PHP :

<form name="filtrar" method="GET" action="Coches.php">
<select name="selciudad" id="selciudad" class="Guias3">
    <option value="-1" selected>&nbsp;Todas las Ciudades&nbsp;&nbsp;</option>
    <?php
    $tablaciudad = mysql_query("SELECT * FROM provincias  ORDER BY Provincia ASC"); 
    while ($registrociudad  = mysql_fetch_array($tablaciudad ))
    {
 // este es el código que produce el Notice      
 if ($_GET["selciudad"]==$registrociudad['Provincia'])
// este es el código que produce el Notice      

      {
           echo "<option value='".$registrociudad['Provincia']."' selected>&nbsp;&nbsp;".$registrociudad['Provincia']."</option>";
       }else{
           echo "<option value='".$registrociudad['Provincia']."' >&nbsp;&nbsp;".$registrociudad['Provincia']."</option>";
       }
    } 
    mysql_free_result($tablaciudad);
    
    ?>

</select>
<input type="submit" name="cmdBuscar" id="cmdBuscar" value="BUSCAR">
</form>

Te aclaro que la página se llama a si misma en el formulario.

geoge no es necesario lo que me dices lo que necesito es poner un código en mi página coches.php que es lo que en estos momentos no se como hacerlo que pregunte lo siguiente "SI $selciudad tiene un valor NULO, $selciudad VALE "-1" y si no tiene un valor NULO $selciudad ES IGUAL a $selciudad. El planteamiento creo que lo tengo claro el problema es que he probado con if (isset($_GET['selciudad] etc... y se ve que no se poner correctamente la instrucción porque no lo hago funcionar, a lo mejor estoy completamente equivocado pero creo que esa es la solución.
Mirad a ver si me podeis decir de momento como pondriais vosotros esa instrucción.
Otra cosa a lo mejor donde hay que hacer la pregunta es en la parte de código que corresponde a dicho select en la consulta, que tambien la teneis al principio de este post cuando plantee mi problema.

Un saludo

Por Unexes

8 de clabLevel



 

msie8
Citar            
MensajeEscrito el 24 Nov 2012 11:43 am
Ya esta SOLUCIONADO al fín encontre la forma de hacerlo era como yo decia.
Gracias a tod@s.

Por Unexes

8 de clabLevel



 

msie8

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.