Foros del Web » Programando para Internet » PHP »

Combobox no me muestra los datos al entrar en la página de modificaciones

Estas en el tema de Combobox no me muestra los datos al entrar en la página de modificaciones en el foro de PHP en Foros del Web. Hola buenos dias. Espero explicarme bien por una vez. En la base de datos que tengo he creado una página que en realidad son tres: ...
  #1 (permalink)  
Antiguo 07/08/2009, 03:31
 
Fecha de Ingreso: junio-2008
Mensajes: 287
Antigüedad: 11 años, 11 meses
Puntos: 1
Combobox no me muestra los datos al entrar en la página de modificaciones

Hola buenos dias.

Espero explicarme bien por una vez.

En la base de datos que tengo he creado una página que en realidad son tres:

modif.php en esta me muestra un listado con los datos para seleccionar
modif2.php en esta me muestra todos los registros que quiero modificar
modif3.php esta página es la encargada de enviar las modificaciones que he podido hacer.

Lo que me pasa es que cuando entro en modif2.php los combobox que tengo me muestran los datos del primer registro de la tabla y no el registro que le corresponde, en cambio si que tengo un campo texto por cada combox y hay si que me muestra bien los datos que tengo en el registro.

Lo que me conlleva esto es que cada vez que entro en un registro tengo que pasar a modificar todos los combobox + el dato que tenia que modificar.

Alguien sabe como puedo hacer que cuando entre en modif2.php los combobox me muestren por defecto el dato que le corresponde?

Les dejo el código que tengo ahora

Código PHP:
<select name="idmunicipio" id="idmunicipio" style="width:100px;" tabindex="5" onkeypress="return handleEnter(this, event)">
        <?php
do {  
?>
        <option value="<?php echo $row_municipio['municipio']?>"<?php if (!(strcmp($row_municipio['municipio'], $_POST['municipio']))) {echo "SELECTED";} ?>><?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>

Supongo que por algún lado le tendre que decir que el selectec es el registro qeu tengo en la base de datos pero no se como hacerlo.

Saludos.
  #2 (permalink)  
Antiguo 12/09/2009, 17:01
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 10 años, 8 meses
Puntos: 214
Respuesta: Combobox no me muestra los datos al entrar en la página de modificaciones

Hola
En efecto es lo que tu dices, porque no pones los option dentro del while???
prueba de ese modo
saludos
  #3 (permalink)  
Antiguo 15/09/2009, 02:01
 
Fecha de Ingreso: junio-2008
Mensajes: 287
Antigüedad: 11 años, 11 meses
Puntos: 1
Respuesta: Combobox no me muestra los datos al entrar en la página de modificaciones

Hola buenos días.

Este es el código que tengo en estos momentos.

Me podria decir alguien como adaptarlo para poner los option dentro del while?

Código PHP:
<select name="idmunicipio" id="idmunicipio" style="width:100px;" tabindex="5" onkeypress="return handleEnter(this, event)">
        <?php
do {  
?>
        <option value="<?php echo $row_municipio['municipio']?>"<?php if (!(strcmp($row_municipio['municipio'], $_POST['municipio']))) {echo "SELECTED";} ?>><?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);
  }
?>
Muchas gracias.
  #4 (permalink)  
Antiguo 16/09/2009, 00:12
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 10 años, 8 meses
Puntos: 214
Respuesta: Combobox no me muestra los datos al entrar en la página de modificaciones

Hola
Pues prueba con este

Código php:
Ver original
  1. <select name="idmunicipio" id="idmunicipio" style="width:100px;" tabindex="5" onkeypress="return handleEnter(this, event)">
  2.         <?php
  3.         $rows = mysql_num_rows($municipio);
  4.   if($rows > 0) {
  5.       mysql_data_seek($municipio, 0);
  6.       $row_municipio = mysql_fetch_assoc($municipio);
  7.   do {  
  8. ?>
  9.         <option value="<?php echo $row_municipio['municipio']?>"<?php if (!(strcmp($row_municipio['municipio'], $_POST['municipio']))) {echo "SELECTED";} ?>><?php echo $row_municipio['municipio']?></option>
  10.         <?php
  11. } while ($row_municipio = mysql_fetch_assoc($municipio));
  12.  
  13.  
  14.   }
  15.  
  16. ?>
  17.       </select>
  18. <?php

Saludos
  #5 (permalink)  
Antiguo 17/09/2009, 01:53
 
Fecha de Ingreso: junio-2008
Mensajes: 287
Antigüedad: 11 años, 11 meses
Puntos: 1
Respuesta: Combobox no me muestra los datos al entrar en la página de modificaciones

Hola Mortiprogramador muchas gracias por responderme.

He hecho lo que me has comentado he cambiado el código que tenia yo por el que me has facilitado y no me hace nada, osea cuando entro en la página de modificación el dato que me carga en el combo es el primero de la base de datos y no el que ya estaba cargado, en cambio al lado le he puesto un campo texto para ver si realmente carga bien los datos y hay si que me lo muestra el dófigo que tengo en ese campo es el siguiente.

Código PHP:
<input name="textIdmunicipio" type="text" disabled="disabled" id="textIdmunicipio" value="<?php print(mysql_result($result,0,'idmunicipio'));?>" size="30" maxlength="30">
Alguna sugerencia?

Muchisimas gracias.
  #6 (permalink)  
Antiguo 17/09/2009, 03:14
Avatar de anibalag85  
Fecha de Ingreso: marzo-2009
Mensajes: 52
Antigüedad: 11 años, 2 meses
Puntos: 1
Lo que yo hago es lo siguiente.
Código PHP:
<select name="provincia" id="provincia">
                                        <?php
                                            $provincia
="select * from PROVINCIAS order by Provincia";
                                            
$resultpro=mysql_query($provincia,$link);
                                            
//Rescata los temas que hay en la base de datos
                                            
while($datospro=mysql_fetch_array($resultpro))
                                            {
                                                if(
$datospro["Cod_Provincia"]==$datos["Cod_Provincia"])
                                                {
//Para que ponga predeterminado el que hay guardado
                                                    
echo "<option value=".$datospro["Cod_Provincia"]." selected>".utf8_decode($datospro["Provincia"])."</option>";
                                                }
                                                else
                                                {
                                                    echo 
"<option value=".$datospro["Cod_Provincia"].">".utf8_decode($datospro["Provincia"])."</option>";
                                                }
                                            }
                                         
?>
                                </select>
Cuendo me meto en lo que sería el modif2.php me llega el código de lo que voy a modificar, co ese código busco con un select los datos de lo que voy a modificar y cuando hago el select le indico que si el dato que está cargando es igual al dato que tengo en la base de datos, que lo marque, así, cuando yo carco el modif2.php, el dato que hay puesto en el combobox es el mismo que el que tengo en mi base de datos

Si no me he explicado con calridad por favor pregunten, solo he hecho una referencia por si le interesa

Última edición por GatorV; 17/09/2009 a las 08:35
  #7 (permalink)  
Antiguo 17/09/2009, 21:28
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 10 años, 8 meses
Puntos: 214
Respuesta: Combobox no me muestra los datos al entrar en la página de modificaciones

Hola
Pues yo creo que el problema que tienes es más de la consulta o los parametros que envias desde la página y el manejo que le das en la que recibes

He puesto el codigo del input que tienes y , por ej, en mi caso yo hago un select * de municipios y pues siempre me muestra el primer registro en el campo de texto, es decir, si le mando como parametro el municipio 2 ese valor si me carga bien en el select pero no en el input pues porque tiene la restricción que traiga el primer registro siempre

Por esto mismo cambie el select y lo puse a filtrar con el municipio que le llega (estoy usando el nombre del municipio para filtrar pues no se si lo que le envias tu es el nombre o el id, pero seria cuestion de cambiar el campo sobre el cual filtrar dependiendo de lo que le envies

Ahora, como no has planteado como tienes tu bd ni nada similar, te muestro todo lo que yo tengo

Código sql:
Ver original
  1. CREATE TABLE municipio (idmunicipio INT(6) PRIMARY KEY AUTO_INCREMENT, municipio VARCHAR(260) NOT NULL);
  2. INSERT INTO municipio (municipio) VALUES ('municipio1'), ('municipio2');

Código php:
Ver original
  1. <?php
  2. //$_POST['municipio'] es el nombre del municipio, y el formulario esta
  3. //en este mismo script mas abajo, si quieres copia el codigo y lo pruebas
  4. //cambiando los parametros de conexión a la bd
  5. if( $_POST['municipio'] != '' ){
  6. $conn = mysql_connect("localhost", "test", "test");
  7. $result = mysql_query("SELECT idmunicipio, municipio FROM municipio WHERE municipio = '".$_POST['municipio']."'");
  8. ?>
  9. <select name="idmunicipio" id="idmunicipio" style="width:100px;" tabindex="5" onkeypress="return handleEnter(this, event)">
  10.         <?php
  11.         $rows = mysql_num_rows($result);
  12.   if($rows > 0) {
  13.       mysql_data_seek($result, 0);
  14.       $row_municipio = mysql_fetch_assoc($result);
  15.   do {  
  16. ?>
  17.         <option value="<?php echo $row_municipio['municipio']?>"<?php if (!(strcmp($row_municipio['municipio'], $_POST['municipio']))) {echo "SELECTED";} ?>><?php echo $row_municipio['municipio']?></option>
  18.         <?php
  19. } while ($row_municipio = mysql_fetch_assoc($result));
  20.  
  21.  
  22.   }
  23.  
  24. ?>
  25.       </select>
  26.       <input name="textIdmunicipio" type="text" disabled="disabled" id="textIdmunicipio" value="<?php print(mysql_result($result,0,'idmunicipio'));?>" size="30" maxlength="30">
  27. <?php
  28.  }
  29.  else{
  30.  ?>
  31.  <form method="post" action="<?php echo $PHP_SELF; ?>">
  32.  <input type = "text" name = "municipio">
  33.  <input type = "submit">
  34.  </form>
  35.  <?php
  36.  }
  37. ?>

Y pues esto ya me muestra tanto el id correcto en el campo de texto que tu posteaste y me filtra correctamente el select
Obviamente, al cambiar el select filtrandolo por el nombre o por el id, como se quiera, solo va a cargar un dato en el select, y si vas a editarlo y a cambiarlo de municipio (si es que estas editando una ciudad por ej) no lo vas a poder hacer, asi que deberias dejar la consulta asi
SELECT idmunicipio, municipio FROM municipio
Con esto alimentaria el select con todos los municipios, sin afectar el funcionamiento que este seleccionado el municipio que enviaste desde la pagina anterior

Bueno, espero ahora te funcione, a mi me esta funcionando bien
Saludos
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 23:27.