Foros del Web » Programando para Internet » PHP »

Mantener combobox seleccionado

Estas en el tema de Mantener combobox seleccionado en el foro de PHP en Foros del Web. Amigos, estuve chusmeando el foro y la verdad no encuentro nada como lo que necesito. Tengo una pagina donde el usuario puede buscar informacion, la ...
  #1 (permalink)  
Antiguo 14/07/2009, 16:43
 
Fecha de Ingreso: junio-2008
Mensajes: 122
Antigüedad: 15 años, 10 meses
Puntos: 1
Mantener combobox seleccionado

Amigos, estuve chusmeando el foro y la verdad no encuentro nada como lo que necesito.

Tengo una pagina donde el usuario puede buscar informacion, la cual se organiza desde 3 combobox.
Luego de la consulta se carga todo en la misma pagina.
El tema es que luego de la consulta, los combobox vuelven al valor inicial y por ende no me pasa mas que siempre las mismas variables de la consulta.
Como puedo hacer para que no me cambie los valores despues de hacer el submit?
Sera con variables? si es asi, me podrian dar un ejemplo practico?

Ah... estoy usando php con Mysql

Muchas gracias!
  #2 (permalink)  
Antiguo 14/07/2009, 17:32
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Mantener combobox seleccionado

Creo no buscaste bien: http://www.forosdelweb.com/wiki/PHP:..._la_primera%3F

Saludos.
  #3 (permalink)  
Antiguo 14/07/2009, 17:39
 
Fecha de Ingreso: junio-2008
Mensajes: 122
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Mantener combobox seleccionado

Antes que nada gracias por la respuesta.
No... eso no lo habia visto, pero creo que no es lo que necesito ya que los combobox que uso yo no son dependientes. Simplemente son 3 combobox que forman la seleccion, por ejemplo ciudad (ciudad 1, ciudad 2) y departamento (1 ambiente, dos ambientes, etc)
Vemos que no son dependientes.
El tema es que cuando hago la consulta le pongo SELECT * FROM tabla WHERE id_ciudad = colname AND id_depto = coldepto
Luego de seleccionar las dos variables me recarga la pagina y me toma la consulta con los 2 primeros valores de los combo, en este caso ciudad 1 y depto 1 ambiente
Y si elijo ciudad 2 deptos 2 ambientes no me los muestra.
Se entiende?
  #4 (permalink)  
Antiguo 14/07/2009, 18:06
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Mantener combobox seleccionado

Revisa las FAQs, si tu problema es preseleccionar agrega el atributo selected="selected" a la opcion que quieras preseleccionar.

Saludos.
  #5 (permalink)  
Antiguo 14/07/2009, 18:18
 
Fecha de Ingreso: junio-2008
Mensajes: 122
Antigüedad: 15 años, 10 meses
Puntos: 1
Muchisimas gracias

No:( no me doy cuenta donde va.
Tengo el siguiente codigo:

<select name="Categoria" id="Categoria">

<?php
do {
?>
<option value="<?php echo $row_Rset_categoria['id_categoria']?>"<?php if (!(strcmp($row_Rset_categoria['id_categoria'], $row_Rset_categoria['id_categoria']))) {echo "SELECTED";} ?>><?php echo $row_Rset_categoria['categoria']?></option>
<?php
} while ($row_Rset_categoria = mysql_fetch_assoc($Rset_categoria));
$rows = mysql_num_rows($Rset_categoria);
if($rows > 0) {
mysql_data_seek($Rset_categoria, 0);
$row_Rset_categoria = mysql_fetch_assoc($Rset_categoria);
}
?>
</select>

En que parte va el selected="selected"

Última edición por GatorV; 14/07/2009 a las 19:05
  #6 (permalink)  
Antiguo 14/07/2009, 19:06
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Mantener combobox seleccionado

Pues de hecho ya lo estas incluyendo, solo que tu comparacion es de $row_Rset_categoria['id_categoria'] contra $row_Rset_categoria['id_categoria'] o sea siempre es true, necesitas cambiar esa parte para comparar lo que tu necesitas que se pre-seleccione.

Saludos.
  #7 (permalink)  
Antiguo 14/07/2009, 19:24
 
Fecha de Ingreso: junio-2008
Mensajes: 122
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Mantener combobox seleccionado

mmm... en palabras de Alejo: "Y como hay que hacer???"
Gracias!
  #8 (permalink)  
Antiguo 15/07/2009, 02:36
 
Fecha de Ingreso: junio-2008
Mensajes: 287
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Mantener combobox seleccionado

Hola buenos días.

Yo tambien estoy con la misma duda, he seguido tanto este Post como otros cuantos y la verdad que cada vez me aclaro menos.

Les dejo mi código haber si hay alguien que me puede decir que tengo mal.

funciones.php
Código PHP:
20    echo "<FORM METHOD="POST" NAME="form" ACTION="buscador.php">";
21    echo "<select name=$tipoinmueble onchange=document.form.submit();>";
22    echo "<option value= '0' selected='selected'>Tipo Inmueble</option>";
23    $linea="select * from inmuebles group by $tipoinmueble"
buscador.php
Código PHP:
    <tr>
      <td width="350" height="30" align="left" valign="top"><h2><em>Listado de Inmuebles: </em></h2></td>
      <td width="397">&nbsp;</td>
      <td width="150">&nbsp;</td>
      <td width="3">&nbsp;</td>
    </tr>
    <tr>
      <td height="61" colspan="2" align="center" valign="middle">
      
        <div align="center">
          <FORM action='buscador.php' method='POST'>
            <?php 
include_once("funciones.php"); 
generar_select("tipoinmueble");
?>
Gracias por la colaboración que nos prestan.
  #9 (permalink)  
Antiguo 16/07/2009, 02:58
 
Fecha de Ingreso: junio-2008
Mensajes: 287
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Mantener combobox seleccionado

Hola buenos dias.

Espero que alguien nos pueda sacar de dudas.

A mi lo que me pasa concretamente es que doy una serie de altas con los combobox y cuando me voy a modificar por haberme equivocado en alguna de las altas los combobox están en la posición inicial y no en la posición que les corresponderia.

Un Ejemplo:

Si al dar de alta he seleccionado una Provincia: Cadiz y una Ciudad: Jerez
Al entrar en la pantalla da modificaciones el combobox lo tengo en Seleccione Provincia y Seleccione Ciudad cuando los tendria que tener en Cadiz y Jerez.

Dentro de la base de datos si que se me graban bien los datos ya que al hacer un print de los campos provincia y ciudad si me da los datos correctos osea Cadiz y Jerez pero los combobox estan en su posición inicial.

Espero que con estas explicaciones aya quedado un poco más claro el tema y haya alguién que nos pueda ayudar.

Les pongo otras lineas de código haber si asi alguien me puede hechar una mano.

Código PHP:
<select name="idmunicipio" id="idmunicipio" style="width:100px;">
      <option value= '-1' selected='selected'>Municipio</option>
        <?php
do {  
?>
        <option value="<?php echo $row_municipio['municipio']?>"><?php echo $row_municipio['municipio']?></option>
        <?php
} while ($row_municipio mysql_fetch_assoc($municipio));
  
$rows mysql_num_rows($municipio);
  if(
$rows 0) {
      
mysql_data_seek($municipio0);
      
$row_municipio mysql_fetch_assoc($municipio);
  }
?>
      </select>
En estos momentos la opción que le tengo por defecto es Municipio pero hay me gustaría que me aparezca la ciudad que tengo en la base de datos.

Saludos.

Última edición por frmfernando; 16/07/2009 a las 03:37
  #10 (permalink)  
Antiguo 16/07/2009, 09:07
Avatar de acumulador  
Fecha de Ingreso: junio-2008
Ubicación: Medellin - Antiquia
Mensajes: 459
Antigüedad: 15 años, 10 meses
Puntos: 7
Respuesta: Mantener combobox seleccionado

Mira este ejemplo y lo adaptas para tu ejercicio.

<?php
$pais[0]="depuracion";
$pais[1]="construccion";
$pais[2]="conservacion";


$sel= $datos['grupo'];
echo "<select name='gru'>";
foreach($pais as $rows => $field)
echo ($field == $sel )?"<option value=\"$field\" selected=\"selected\">$field</option>":"<option value=\"$field\">$field</option>";

echo "</select>";
?>

Espero te sirva y lo puedas aplicar, si alguna duda, escribe para orientarte.
__________________
-----------------------------------------------------------------------------
Yo vivo de preguntar, saber no puede ser lujo...
  #11 (permalink)  
Antiguo 16/07/2009, 11:54
 
Fecha de Ingreso: junio-2008
Mensajes: 287
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Mantener combobox seleccionado

Hola Acululador.

se agradece tu ayuda, la verdad que estoy bastante perdido con la información que me has facilitado y no tengo ni idea de como inplementarla a mi código.

Te agradecería que me hechases una mano con esto.

Muchas Gracias.
  #12 (permalink)  
Antiguo 16/07/2009, 15:08
 
Fecha de Ingreso: enero-2008
Mensajes: 381
Antigüedad: 16 años, 3 meses
Puntos: 19
Respuesta: Mantener combobox seleccionado

Cita:
Iniciado por frmfernando Ver Mensaje

Les dejo mi código haber si hay alguien que me puede decir que tengo mal.

Código PHP:
20    echo "<FORM METHOD="POST" NAME="form" ACTION="buscador.php">";
21    echo "<select name=$tipoinmueble onchange=document.form.submit();>";
22    echo "<option value= '0' selected='selected'>Tipo Inmueble</option>";
23    $linea="select * from inmuebles group by $tipoinmueble"
Hola, no se si ya lo habras solucionado, pero en la primera linea estas usando comillas dentro de un string, por lo que php interpreta que no es string, en concreto lo que esta marcado en azul, no se si me entiendes.

PHP considera "<FORM METHOD=" como un string y despues deja a POST fuera del string y igual con los demas.

Para solucionarlo puedes usar comillas simples o incluir caracteres de escape.

Código PHP:
20    echo '<FORM METHOD="POST" NAME="form" ACTION="buscador.php">'

Código PHP:
20    echo "<FORM METHOD='POST' NAME='form' ACTION='buscador.php'>"

Código PHP:
20    echo "<FORM METHOD=\"POST\" NAME=\"form\" ACTION=\"buscador.php\">"
De todas estas formas php considera todo el codigo como string.
  #13 (permalink)  
Antiguo 16/07/2009, 15:37
Avatar de cesarpi80  
Fecha de Ingreso: mayo-2009
Mensajes: 159
Antigüedad: 14 años, 10 meses
Puntos: 10
Respuesta: Mantener combobox seleccionado

Código PHP:
<select name="cod_cat"  class="select" id="base">
          <OPTION selected='selected' VALUE='999'>Todos</OPTION>
            <?php
            
while($row2=pg_fetch_row($familia))
                {
                  if (
$cod_cat == $row2[0])
                   echo 
"<OPTION selected='selected' VALUE='$row2[0]'>$row2[1]</OPTION>";
                  else
                   echo 
"<OPTION VALUE='$row2[0]'>$row2[1]</OPTION>";
                }
        
?>
          </select>
Para el caso del que abrió el tema este podria ser su solución es sencilla y eficaz, en el caso que otros dos combos dependan de este primero, tene listas el llamado a las funciones que se hacen en el OnChange y las llamas desde el momento en que la des por seleccionada al recargar la página.

Y para frmfernando, eso que esta ahi, es exactamente lo que vas a necesitar.

PD: $familia, viene del corrido de la query que vayan a necesitar, dentro de ella esta el contenido a comparar.
$cod_cat, es el código que viaja a travez del _POST o el _GET.

Espero que les haya servido este ejemplo. Salu2.
__________________
Tratando de aprender lo mas que se pueda !!!
  #14 (permalink)  
Antiguo 19/07/2009, 04:11
 
Fecha de Ingreso: junio-2008
Mensajes: 287
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Mantener combobox seleccionado

Hola buenos dias.

Gracias por el tiempo que pasais ayudandonos.

He estado intentando poner el código que me habeis dicho y no hay manera.

El código que tengo en mi aplicación es el siguiente:

Código PHP:
mysql_select_db($database_Tuvivienda$Tuvivienda);
$query_provincia "SELECT provincia FROM provincias ORDER BY provincia ASC";
$provincia mysql_query($query_provincia$Tuvivienda) or die(mysql_error());
$row_provincia mysql_fetch_assoc($provincia);
$totalRows_provincia mysql_num_rows($provincia);

mysql_select_db($database_Tuvivienda$Tuvivienda);
$query_municipio "SELECT municipio FROM municipios ORDER BY municipio ASC";
$municipio mysql_query($query_municipio$Tuvivienda) or die(mysql_error());
$row_municipio mysql_fetch_assoc($municipio);
$totalRows_municipio mysql_num_rows($municipio); 
Supongo que no será tan dificil la solución para algún entendido en la materia pero para gente como yo esto es algo complicado.

Por lo menos me voy enterando poco a poco del codigo.

Pero todavia queda un rato hasta que yo pueda resolver problemas de los demás.

Muchas Gracias.
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 17:22.