Foros del Web » Programando para Internet » PHP »

Ayuda combo dinamico

Estas en el tema de Ayuda combo dinamico en el foro de PHP en Foros del Web. Ese es el codigo de mi combo dinamico lo malo es que no se como hacer para que al momento de hacer un listado de ...
  #1 (permalink)  
Antiguo 05/01/2010, 20:24
(Desactivado)
 
Fecha de Ingreso: diciembre-2008
Ubicación: Trujillo - Peru
Mensajes: 341
Antigüedad: 15 años, 3 meses
Puntos: 2
Ayuda combo dinamico

Ese es el codigo de mi combo dinamico
lo malo es que no se como hacer para que al momento de hacer un listado de los datos que estan en la bd, el selected quede conforme esta en la bd y no se quede el de defecto del select

como podria hacer eso del SELECTED

Código PHP:
<?php
//SESION
session_start();
function 
cargar_combo($tabla,$value,$opt$opt2$name)
    {
    
//CONEXION
    
$enlace mysql_connect("localhost""root""111111") or die("No pudo conectarse : " mysql_error());
    
mysql_select_db("BD") or die("No pudo seleccionarse la BD.");
    
    
$sql "select * from ".$tabla." ORDER BY $opt asc";
    
$res mysql_query($sql) or die (mysql_error());
    echo 
"<select name='$name'>";
    while(
$fila mysql_fetch_assoc($res))
        {
        echo 
"<option value='$fila[$value]'>$fila[$opt] $fila[$opt2]</option>";
        }
    echo 
"</select>";
    
mysql_close($enlace);
}
?>
  #2 (permalink)  
Antiguo 05/01/2010, 20:34
(Desactivado)
 
Fecha de Ingreso: junio-2009
Mensajes: 256
Antigüedad: 14 años, 10 meses
Puntos: 1
Respuesta: Ayuda combo dinamico

hola. tendrias que hacer una condicion para que seleccione el valor correspondiente.

Código PHP:
Ver original
  1. <?php
  2. //SESSION
  3. function cargar_combo($tabla,$value,$opt, $opt2, $name)
  4.     {
  5.     //CONEXION
  6.     $enlace = mysql_connect("localhost", "root", "111111") or die("No pudo conectarse : " . mysql_error());
  7.     mysql_select_db("BD") or die("No pudo seleccionarse la BD.");
  8.    
  9.     $sql = "select * from ".$tabla." ORDER BY $opt asc";
  10.     $res = mysql_query($sql) or die (mysql_error());
  11.     echo "<select name='$name'>";
  12.     while($fila = mysql_fetch_assoc($res))
  13.         {
  14.         echo "<option selected='$fila[$value]' value='$fila[$value]'>$fila[$opt] $fila[$opt2]</option>";
  15.         }
  16.     echo "</select>";
  17.     mysql_close($enlace);
  18. }
  19. ?>

saludos.

Última edición por xfer2; 05/01/2010 a las 20:35 Razón: correccion.
  #3 (permalink)  
Antiguo 05/01/2010, 20:38
(Desactivado)
 
Fecha de Ingreso: diciembre-2008
Ubicación: Trujillo - Peru
Mensajes: 341
Antigüedad: 15 años, 3 meses
Puntos: 2
Respuesta: Ayuda combo dinamico

puedes completar el codigo?

Última edición por lalo0002; 05/01/2010 a las 22:02
  #4 (permalink)  
Antiguo 05/01/2010, 22:20
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 14 años, 8 meses
Puntos: 150
Respuesta: Ayuda combo dinamico

Yo ahi veo un listado de una tabla en un <select> pero...... ¿cual es el criterio para hacer que de inicio este seleccionada uno de los <option>?

Te adelanto que para que uno de los <option> este activado tan solo es añadiendo esto:

<option selected name="kjdkfjkdkf">
  #5 (permalink)  
Antiguo 06/01/2010, 08:57
(Desactivado)
 
Fecha de Ingreso: diciembre-2008
Ubicación: Trujillo - Peru
Mensajes: 341
Antigüedad: 15 años, 3 meses
Puntos: 2
Respuesta: Ayuda combo dinamico

Si lo se con SELECTED

pero se tiene que hacer una condicion con if para saber que option es la que debe ir

por ejemplo en la bd tengo

1 argentina
2 peru
3 venezuela
4 brazil

ahora yo en el combo x ejemplo me debe salir "venezuela" y no "argentina" por ser el primero.
  #6 (permalink)  
Antiguo 06/01/2010, 09:00
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 14 años, 8 meses
Puntos: 150
Respuesta: Ayuda combo dinamico

Podrias probar con esto
Código PHP:
if ($fila[$value]=="venezuela") {$texto=" selected ";} else {$texto="";}
echo 
"<option $texto value='$fila[$value]'>$fila[$opt] $fila[$opt2]</option>"
  #7 (permalink)  
Antiguo 06/01/2010, 09:10
 
Fecha de Ingreso: diciembre-2008
Mensajes: 805
Antigüedad: 15 años, 4 meses
Puntos: 20
Respuesta: Ayuda combo dinamico

primero: yo por ejemplo para hacer lo que vos queres utilizo el pg_fecht_row

Código PHP:
<td width="10%">* pais </td>
      <td><span class="Estilo6">
          <?php
                
          $valor 
$row[9]; //aca pones el valor que te trae de la bd por ejemplo venezuela

         
          
          // Conexion, seleccion de base de datos
                
$conexionConec_con_pass();

                
// Realizar una consulta SQL
                
$consulta  "SELECT * FROM zonas";
                
$resultado pg_query($consulta) or die('La consulta fall&oacute;: ' pg_error());

                
// Impresion de resultados en HTML

                
echo "<select name='txtloc' id='txtloc' tabindex='9' >";
                
                    while (
$linea pg_fetch_row($resultado)) {
   
                       
//foreach ($linea as $valor_col) {
                
                           
if ($linea[1]==$valor){
                       
                               echo 
" <option selected value='$linea[1]' > $linea[1] </option>";
                            }
                        else 
                        {
                            echo 
" <option value='$linea[1]' > $linea[1] </option>";
                        }
                    
                    }
                echo 
"</select>";
                
// Liberar conjunto de resultados
                
pg_free_result($resultado);
                
// Cerrar la conexion
                
pg_close($conexion);  
            
?>
    </span> </td>
Si no entendes algo preguntalo, asi se puedo ir ayudando
  #8 (permalink)  
Antiguo 06/01/2010, 09:44
(Desactivado)
 
Fecha de Ingreso: diciembre-2008
Ubicación: Trujillo - Peru
Mensajes: 341
Antigüedad: 15 años, 3 meses
Puntos: 2
Respuesta: Ayuda combo dinamico

lo hice tal como me dijiste pero no me sale, no me sale el combo



Código PHP:
        <?php
        
include('ProcesosPHP/conexion.php');
        
$cid $_POST['cid']; 
        
$id array_shift($cid);  
        
        
$Select=@mysql_query("SELECT * FROM area WHERE AREA_CODIGO = $id");
        
$registros mysql_fetch_array($Select);
        
$AREA_NOMBRE=$registros[AREA_NOMBRE];
        
$ASOSIADO_CODIGO=$registros[ASOSIADO_CODIGO];
       
?>
        <form action="ProcesosPHP/InsertarTipoUsuarios.php" method="post" name="frmTipoUsuario" autocomplete="off">
         <div class="col width-45">
          
          <fieldset class="adminform">
           <legend>Datos de Area</legend>
            <table class="admintable" cellspacing="1">
             <tr>
              <td class="key"><label for="txtCodigo">Id</label></td>
              <td><input type="text" name="txtCodigo" id="txtCodigo" class="inputbox" value="<?php echo $id;?>" size="5" readonly="readonly" /></td>
             </tr>
             <tr>
              <td class="key"><label for="txtNombre">Nombre de Area</label></td>
              <td><input type="text" name="txtNombre" id="txtNombre" class="inputbox" size="30" tabindex="1" value="<?php echo $AREA_NOMBRE;?>"/></td>
             </tr>
             <tr>
              <td class="key"><label for="txtDescripcion">Asosiado</label></td>
      <td>
          <?php                
          $valor 
$row[15]; //aca pones el valor que te trae de la bd por ejemplo venezuela
              
          // Realizar una consulta SQL
          
$consulta  "SELECT * FROM asosiado";
          
$resultado mysql_query($consulta) or die('La consulta fall&oacute;: ' mysql_error());
          
// Impresion de resultados en HTML
          
echo "<select name='txtloc' id='txtloc' tabindex='9' >";
          while (
$linea mysql_fetch_row($resultado)) {
          
//foreach ($linea as $valor_col) {
              
if ($linea[1]==$valor)
                {echo 
" <option selected=\"selected\" value='$linea[1]' > $linea[1] </option>";}
            else 
                {echo 
" <option value='$linea[1]' > $linea[1] </option>";}
            }
            echo 
"</select>";
            
// Liberar conjunto de resultados
            
mysql_free_result($resultado);
            
// Cerrar la conexion
            
mysql_close($con);  
            
?>            
            </td>
             </tr>                
            </table>
           </fieldset>
          </div>
          <div class="clr"></div>
         </form>
mi conexion
Código PHP:
<?php 
$bd_host 
"localhost"
$bd_usuario "root"
$bd_password "xxxxxx"
$bd_base "bd"
$con mysql_connect($bd_host$bd_usuario$bd_password); 
mysql_select_db($bd_base$con); 
?>

Última edición por lalo0002; 06/01/2010 a las 10:02
  #9 (permalink)  
Antiguo 06/01/2010, 09:51
 
Fecha de Ingreso: diciembre-2008
Mensajes: 805
Antigüedad: 15 años, 4 meses
Puntos: 20
Respuesta: Ayuda combo dinamico

todo lo que encuentres con pg_ significa que es de postgres y vos estas usando mysql cambialos.
  #10 (permalink)  
Antiguo 06/01/2010, 09:53
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 14 años, 8 meses
Puntos: 150
Respuesta: Ayuda combo dinamico

¿por que le pones al <option> selected=\"selected\" ??

Es simplemente SELECTED , lee mi post
  #11 (permalink)  
Antiguo 06/01/2010, 09:55
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Ayuda combo dinamico

Hola, Vun.

Para XHTML es obligatorio usar la forma selected="selected" aunque parezca redundante, ya que debe ser un XML válido.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #12 (permalink)  
Antiguo 06/01/2010, 10:00
(Desactivado)
 
Fecha de Ingreso: diciembre-2008
Ubicación: Trujillo - Peru
Mensajes: 341
Antigüedad: 15 años, 3 meses
Puntos: 2
Respuesta: Ayuda combo dinamico

hola amigos ya cambie lo de pg x mysql ahora ya aparece el combo, pero lo malo es que saca siempre al primer dato de ese campo, mas no el que deberia estar seleccionado

cual es mi error ?
  #13 (permalink)  
Antiguo 06/01/2010, 10:03
Avatar de bacdavi  
Fecha de Ingreso: junio-2006
Ubicación: http://localhost/
Mensajes: 351
Antigüedad: 17 años, 10 meses
Puntos: 7
Respuesta: Ayuda combo dinamico

a ver a ver, necesitas que en tu <select> se marque la opcion de la consulta como seleccionada?? por ejemplo:

1 argentina
2 peru
3 venezuela -selected-
4 brazil
  #14 (permalink)  
Antiguo 06/01/2010, 10:05
(Desactivado)
 
Fecha de Ingreso: diciembre-2008
Ubicación: Trujillo - Peru
Mensajes: 341
Antigüedad: 15 años, 3 meses
Puntos: 2
Respuesta: Ayuda combo dinamico

si ese es el ejemplo, deberia salirme venezuela, pero en ese caso me sale peru ya que es el primero en la bd

arriba corregí los errores que me detectaron, pero aun no me funciona
  #15 (permalink)  
Antiguo 06/01/2010, 10:07
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Ayuda combo dinamico

Por cierto, tengo entendido que donde sergiop21 coloca $row[9] es sólo un ejemplo. Debes sustituirlo por el valor que quieres que esté seleccionado.

En el contexto, $row[15] (lo que has puesto) no tiene ningún valor.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #16 (permalink)  
Antiguo 06/01/2010, 10:11
(Desactivado)
 
Fecha de Ingreso: diciembre-2008
Ubicación: Trujillo - Peru
Mensajes: 341
Antigüedad: 15 años, 3 meses
Puntos: 2
Respuesta: Ayuda combo dinamico

row = 15 significa que es l codigo nro 15 en la tabla asosiado verdad?
lo puse 15 para probar, osea me tendria que salir el nro 15 que es jose, pero siempre me sale la fila nro 1 q es karen

Última edición por lalo0002; 06/01/2010 a las 10:16
  #17 (permalink)  
Antiguo 06/01/2010, 10:16
Avatar de bacdavi  
Fecha de Ingreso: junio-2006
Ubicación: http://localhost/
Mensajes: 351
Antigüedad: 17 años, 10 meses
Puntos: 7
Respuesta: Ayuda combo dinamico

Cita:
Iniciado por lalo0002 Ver Mensaje
Ese es el codigo de mi combo dinamico
lo malo es que no se como hacer para que al momento de hacer un listado de los datos que estan en la bd, el selected quede conforme esta en la bd y no se quede el de defecto del select

como podria hacer eso del SELECTED

Código PHP:
<?php
//SESION
session_start();
function 
cargar_combo($tabla,$value,$opt$opt2$name)
    {
    
//CONEXION
    
$enlace mysql_connect("localhost""root""111111") or die("No pudo conectarse : " mysql_error());
    
mysql_select_db("BD") or die("No pudo seleccionarse la BD.");
    
    
$sql "select * from ".$tabla." ORDER BY $opt asc";
    
$res mysql_query($sql) or die (mysql_error());
    echo 
"<select name='$name'>";
    while(
$fila mysql_fetch_assoc($res))
        {
        echo 
"<option value='$fila[$value]'>$fila[$opt] $fila[$opt2]</option>";
        }
    echo 
"</select>";
    
mysql_close($enlace);
}
?>
Proba asi:

Código:
echo "<option value='$fila[$value]'"if($fila[$value]==$opt){'selected=selected'}">$fila[$opt] $fila[$opt2]</option>";
  #18 (permalink)  
Antiguo 06/01/2010, 10:17
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Ayuda combo dinamico

No, no funciona de esa forma.

La lógica es la siguiente:
Código PHP:
Ver original
  1. $valor = 'jose';
  2.  
  3. // ...
  4.  
  5. // Se compara el valor de la columna '1' en el registro actual con $valor
  6. if ($linea[1] == $valor) {
  7.     // Marcar opción
  8. }
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #19 (permalink)  
Antiguo 06/01/2010, 10:22
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Ayuda combo dinamico

Repito nuevamente, en las FAQs del foro hay un ejemplo muy claro y explicado de como hacer un select con una base de datos y pre-seleccionar el valor.

Saludos.
  #20 (permalink)  
Antiguo 06/01/2010, 10:22
Avatar de bacdavi  
Fecha de Ingreso: junio-2006
Ubicación: http://localhost/
Mensajes: 351
Antigüedad: 17 años, 10 meses
Puntos: 7
Respuesta: Ayuda combo dinamico

Cita:
Iniciado por David Ver Mensaje
No, no funciona de esa forma.

La lógica es la siguiente:
Código PHP:
Ver original
  1. $valor = 'jose';
  2.  
  3. // ...
  4.  
  5. // Se compara el valor de la columna '1' en el registro actual con $valor
  6. if ($linea[1] == $valor) {
  7.     // Marcar opción
  8. }
bueno alli esta la respuesta, no?
  #21 (permalink)  
Antiguo 06/01/2010, 10:35
(Desactivado)
 
Fecha de Ingreso: diciembre-2008
Ubicación: Trujillo - Peru
Mensajes: 341
Antigüedad: 15 años, 3 meses
Puntos: 2
probe de mil maneras pero siempre me sale la primera fila y no la q deberia estar seleccionada

AMIGOS YA ME SALIO:

$valor = $ASOSIADO_CODIGO;

YA ESTA TODO BIEN, COMPARA EL CODIGO CON EL DEL ASOSIADO Y JALA PERFECTO EL SELECTED

Última edición por GatorV; 06/01/2010 a las 10:55

Etiquetas: combo, dinamico
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 00:39.