Foros del Web » Programando para Internet » PHP »

Mantener datos de combo despues de recarga

Estas en el tema de Mantener datos de combo despues de recarga en el foro de PHP en Foros del Web. Hola que tal... Tengo una pagina en donde capturo datos, si hay algun error de captura manda el mensaje de error despues de dar clic ...
  #1 (permalink)  
Antiguo 29/05/2009, 16:32
Avatar de velma  
Fecha de Ingreso: marzo-2006
Mensajes: 94
Antigüedad: 18 años, 1 mes
Puntos: 0
Pregunta Mantener datos de combo despues de recarga

Hola que tal...

Tengo una pagina en donde capturo datos, si hay algun error de captura manda el mensaje de error despues de dar clic en un submit, y logre que no borrara los datos que ya tenia capturados, pero en el caso de las fecha y combos que estan enlazados a alguna tabla no puedo mantener los datos que habia elegido, les dejo algo de codigo, utilizo heredoc-:

Código PHP:
if ($_GET['accion']=="nuevo"){

cabeceraHTML();

$results=mysql_query("SELECT ID_SUP, CONCAT(nombre,' ',paterno,' ', materno) AS nombre FROM $sql_tabla_s ORDER BY nombre") or die(mysql_error());
$menu_sup="<select name='asignado'>\n<option selected>Selecciona</option>";
while(
$registros=mysql_fetch_row($results))
{
$menu_sup.="\n<option value='".$registros[0]."'>".$registros[1]."</option>";
}
$menu_sup.="\n</select>";

echo <<< HTML
<table width="500" border="1" cellspacing="0" cellpadding="4" align="center">
    <tr>
      <td colspan="2" height="30" bgcolor="#115A7A">
        <div align="center"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#FFFFFF">.:
          Registro de Modems :.</font></b><br>
        <a href="$pag">Regresar</a></div>
      </td>
    </tr>
        <tr bgcolor="#B1D5E5">
      <td width="250">
        <div align="right"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Serie
          : </font></div>
      </td>
      <td width="250"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2">
     <input type="text" name="serie" class="imputbox" maxlength="12" size="15" onChange="javascript:this.value=this.value.toUpperCase()" value="
{$_REQUEST['serie']}">
        </font></b></td>
    </tr>
    <tr bgcolor="#B1D5E5">
      <td width="250">
        <div align="right"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Fecha de Salida dd/mm/aaaa
          : </font></div>
      </td>
      <td width="250"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2">
        <input type="text" name="fechasal" class="imputbox" maxlength="10" size="15" value="
{$_REQUEST['fechasal']}">
        </font></b></td>
    </tr>
    
        <tr bgcolor="#B1D5E5">
      <td width="250">
        <div align="right"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Asignado a supervisor
          : </font></div>
      </td>
      <td width="300"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2">
         $menu_sup
        </font></b></td>
    </tr>
    
        <tr bgcolor="#B1D5E5">
      <td width="250">
        <div align="right"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Telefono
          : </font></div>
      </td>
      <td width="250"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2">
        <input type="text" name="telefono" class="imputbox" maxlength="8" size="15" value="
{$_REQUEST['telefono']}">
        </font></b></td>
    </tr>
  </table>
</form>
HTML;
}

if (
$_GET['accion']=="hacernuevo"){
$ser=$_REQUEST['serie'];
$fe_sa=$_REQUEST['fechasal'];
$asign=$_REQUEST['asignado'];
$tel=$_REQUEST['telefono'];


//Valida que no haya campos vacios
if ($ser=="" or asign=="" or $tel==""  or $fe_sa=="" {
header ("Location: $pag?accion=nuevo&error=1&serie=".$_REQUEST['serie']."&fechaing=".$_REQUEST['fechaing']."&fechasal=".$_REQUEST['fechasal'[/SIZE]]."&asignado=".$_REQUEST['asignado']."&telefono=".$_REQUEST['telefono']."&procedencia=".$_REQUEST['procedencia']."&or_serv=".$_REQUEST['or_serv']."&or_pro=".$_REQUEST['or_pro']."&telvta=".$_REQUEST['telvta']."&observaciones=".$_REQUEST['observaciones']." ");
exit;
}

if (
$asign=="Selecciona" or $asign==" "){
header ("Location: $pag?accion=nuevo&error=13&serie=".$_REQUEST['serie']."&fechaing=".$_REQUEST['fechaing']."&fechasal=".$_REQUEST['fechasal']."&asignado=".$_REQUEST['asignado']."&telefono=".$_REQUEST['telefono']."&procedencia=".$_REQUEST['procedencia']."&or_serv=".$_REQUEST['or_serv']."&or_pro=".$_REQUEST['or_pro']."&telvta=".$_REQUEST['telvta']."&observaciones=".$_REQUEST['observaciones']." ");
exit;
}

// Validar el fECHA de salida (numeros,diagonales y valida dia mes y ao ) 
if (!ereg("(0[1-9]|[12][0-9]|3[01])[/](0[1-9]|1[012])[/](19|20)[0-9]{2}"$fe_sa)){
header ("Location: $pag?accion=nuevo&error=9&serie=".$_REQUEST['serie']."&fechaing=".$_REQUEST['fechaing']."&fechasal=".$_REQUEST['fechasal']."&asignado=".$_REQUEST['asignado']."&telefono=".$_REQUEST['telefono']."&procedencia=".$_REQUEST['procedencia']."&or_serv=".$_REQUEST['or_serv']."&or_pro=".$_REQUEST['or_pro']."&telvta=".$_REQUEST['telvta']."&observaciones=".$_REQUEST['observaciones']." ");
exit;
}
function 
cambiaf_a_mysql($fe_sa){ 
    
ereg"([0-9]{1,2})/([0-9]{1,2})/([0-9]{2,4})"$fe_sa$mifecha); 
    
$lafecha=$mifecha[3]."-".$mifecha[2]."-".$mifecha[1]; 
    return 
$lafecha
}

mysql_query("INSERT INTO $sql_tabla_i values('','$ser','" cambiaf_a_mysql($fe_in) . "','" cambiaf_a_mysql2($fe_sa) . "','$asign','$tel','$proc','$orden','$orden_pro','$tel_vta','$observaciones')") or die(mysql_error()); 
Cuando se refrescala pagina los valores de fecha los quita y los del combo enlazado lo regresa a la primera opcion por defaul, alguien sabe como podria solucionar esto?
__________________
:cool: VELMA:si:
  #2 (permalink)  
Antiguo 29/05/2009, 19:30
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Mantener datos de combo despues de recarga

1. debes corregir un pequeño error

Te falta $ en asign y )

if ($ser=="" or $asign=="" or $tel=="" or $fe_sa=="") {


2. Para poder ver cual fue el que escogio la persona en este codigo debes hacer

Código PHP:
$results=mysql_query("SELECT ID_SUP, CONCAT(nombre,' ',paterno,' ', materno) AS nombre FROM $sql_tabla_s ORDER BY nombre") or die(mysql_error()); 
$menu_sup="<select name='asignado'>\n<option selected>Selecciona</option>"
while(
$registros=mysql_fetch_row($results)) 

if(
$registros[0] == $_REQUEST["asignado"]){
  
$s "selected";
}else{
  
$s "";
}
$menu_sup.="\n<option value='".$registros[0]."' {$s}>".$registros[1]."</option>"

$menu_sup.="\n</select>"
El de fecha no veo nada incorrecto
  #3 (permalink)  
Antiguo 04/06/2009, 13:44
Avatar de velma  
Fecha de Ingreso: marzo-2006
Mensajes: 94
Antigüedad: 18 años, 1 mes
Puntos: 0
Funciono muy bien , gracias

Hola me surgio otra duda respecto a esto, ahora jalo 2 campos en el mismo combo, lo pue como me recomendaste pero en este caso no funciona, no se cual sea la falla:

//LLAMA STATUS
$resultst=mysql_query("SELECT ID_ST, num_st, nom_st FROM $sql_tabla_st ORDER BY num_st") or die(mysql_error());
$menu_st="<select name='id_st'>\n<option selected>Selecciona</option>";
while($registros=mysql_fetch_row($resultst))
{
if($registros[0] == $_REQUEST["id_st"]){
$stat="selected";
}else{
$stat="";
}
$menu_st.="\n<option value='".$registros[0]."'{$stat}>".$registros[1]." - ".$registros[2]."</option>";
}
$menu_st.="\n</select>";
__________________
:cool: VELMA:si:

Última edición por GatorV; 08/06/2009 a las 20:08
  #4 (permalink)  
Antiguo 08/06/2009, 14:53
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Mantener datos de combo despues de recarga

Escribe el codigo completo para poder decirte cual es el error o sea el de los dos select
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 07:29.