Foros del Web » Programando para Internet » PHP »

Refrescar formulario sin perder valores de un select

Estas en el tema de Refrescar formulario sin perder valores de un select en el foro de PHP en Foros del Web. Hola, mi consulta es la siguiente, tengo un formulario con un select dinamico, pero antes de llegar a la fila de ese select, tengo varios ...
  #1 (permalink)  
Antiguo 12/07/2006, 13:20
 
Fecha de Ingreso: septiembre-2004
Mensajes: 27
Antigüedad: 19 años, 7 meses
Puntos: 0
Refrescar formulario sin perder valores de un select

Hola, mi consulta es la siguiente, tengo un formulario con un select dinamico, pero antes de llegar a la fila de ese select, tengo varios text y un select normal llenado desde la bd.
Este es el select normal que viene antes del dinamico:

Código PHP:

include ("encabezado.php");
    
 
$consulta2"select dc_Calle, dg_Calle from t_calles order by dg_Calle";
$rs2=mysql_query($consulta2);
echo 
'<select name="calle">';

while (
$row=mysql_fetch_array($rs2))
{
print (
"<option value=".$row['dc_Calle'].">".$row['dg_Calle']."</option>");



Y luego de un par de cuadros de texto, viene el dinamico que sería el siguiente:

Código PHP:

<td bgcolor="#FFCC99"><font size="2" face="Verdana"><strong>Apoyo</strong></font></td>
      <td> <font size="2" face="Verdana"> 
        <?

$consulta
"select * from t_tipo_benef";


$sSQL="SELECT cod_tipo_benef, tipo_benef FROM t_tipo_benef ORDER BY cod_tipo_benef";
$result=mysql_db_query($db,$sSQL) or die(mysql_error());

echo 
'<select name="beneficio" onChange="javascript:recarga(this.form);">';
echo 
"<option>-- Seleccione el apoyo--</option>";
while (
$row=mysql_fetch_array($result))
{   
  if (
$row['cod_tipo_benef'] == $beneficio=$_POST['beneficio'])
    {    echo 
"<option value='".$row['cod_tipo_benef']."' selected>".$row['tipo_benef']."</option>"
    } 
    else 
    {
        echo 
"<option value='".$row['cod_tipo_benef']."'>".$row['tipo_benef']."</option>"

    } 
     


echo 
"</select>";

?>
        </font></td>
    </tr>
    <tr> 
      <td bgcolor="#FFCC99"><font size="2" face="Verdana"><strong>Detalle</strong></font></td>
      <td> <font size="2" face="Verdana"> 
        <?
        $consulta
"select * from t_sub_benef";

        
$sSQL="SELECT cod_sub_benef, detalle From t_sub_benef WHERE cod_tipo_benef='$beneficio'";

$result=mysql_db_query($db,$sSQL);

echo 
'<select name="sub_beneficio" onChange="javascript:recarga(this.form);">';
echo 
"<option>-- sub_apoyo--</option>";

while (
$row=mysql_fetch_array($result))
{   
    if (
$row['cod_sub_benef'] == $sub_beneficio=$_POST['sub_beneficio'])
    {    echo 
"<option value='".$row['cod_sub_benef']."' selected>".$row['detalle']."</option>"
    }
    else 
    {

       echo 
"<option value='".$row['cod_sub_benef']."'>".$row['detalle']."</option>"
    }
    

echo 
"</select>";
?>
        </font></td>
Entonces cuando se ejecuta la recarga del form del menu dinamico, se me pierde el valor del select normal que ya habia puesto.....se entiende?
Sé hacerlo con los text, poniendo $_post ['valor'] en el value...pero en el select no puedo hacerlo, he tratado poniendole "selected" pero no resulta...alguna sugerencia? Gracias
  #2 (permalink)  
Antiguo 12/07/2006, 13:56
 
Fecha de Ingreso: mayo-2004
Ubicación: Barcelona
Mensajes: 200
Antigüedad: 19 años, 11 meses
Puntos: 0
Busqueda

Hola

En los select tamb puedes pasarle el valor, y dependiendo del valor marcarlo
EJ:

Código PHP:
include ("encabezado.php");
    
 
$consulta2"select dc_Calle, dg_Calle from t_calles order by dg_Calle";
$rs2=mysql_query($consulta2);
echo 
'<select name="calle">';

while (
$row=mysql_fetch_array($rs2))
{
   echo 
"<option value=".$row['dc_Calle'];
   
   if(
$row['dc_Calle'] == $VALOR QUE RECOGES){
      echo 
" selected";
   }

   echo 
">".$row['dg_Calle']."</option>";

Espero q te sirva, Sald2
  #3 (permalink)  
Antiguo 12/07/2006, 14:04
 
Fecha de Ingreso: septiembre-2004
Mensajes: 27
Antigüedad: 19 años, 7 meses
Puntos: 0
no se me habia ocurrido de esa forma , gracias te pasaste, resultó super bien
  #4 (permalink)  
Antiguo 12/07/2006, 14:05
 
Fecha de Ingreso: mayo-2004
Ubicación: Barcelona
Mensajes: 200
Antigüedad: 19 años, 11 meses
Puntos: 0
De nada,

Salud2
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 14:13.