Foros del Web » Programando para Internet » PHP »

Problema al recargar pagina

Estas en el tema de Problema al recargar pagina en el foro de PHP en Foros del Web. Hola, tengo un formulario en el que tengo 2 pares de comboboxes que son dependientes, uno se llama CDU que consta de 2 combos (el ...
  #1 (permalink)  
Antiguo 24/04/2008, 03:37
 
Fecha de Ingreso: marzo-2007
Ubicación: España
Mensajes: 133
Antigüedad: 17 años, 1 mes
Puntos: 0
Problema al recargar pagina

Hola,

tengo un formulario en el que tengo 2 pares de comboboxes que son dependientes,
uno se llama CDU que consta de 2 combos (el segundo depende del primero) y otro se llama Descriptors también con 2 combos (uno depende del otro).

En este foro encontré un código que (con PHP) rellenaba el segundo combo a partir del primero recargando la página. Como el formulario contiene más campos he hecho que se completaran

Código PHP:
<input type="text" name="titol" value="<?=$_POST['titol']?>">
eso para todos excepto estos combos que he nombrado.

El problema que tengo es el siguiente... para no tener 'tanto' código en el mismo archivo, he puesto la parte que maneja los combos dependientes en ficheros a parte de manera que en el formulario hago esto:

Código PHP:
<tr>
    <td> CDU (*) </td>
    <td colspan="5"> <? include 'formulario.php' ?></td>
    </tr>
  <tr>
    <td>Descriptors</td>
    <td colspan="5"> <? include 'desc.php' ?></td>
  </tr>
Ahora sí... el problema es que al desplegar el primer combo de "Descriptores" al recargarse la página pierdo el valor del segundo combo de "CDU".

Este es el codigo que tengo en formulario:

Código PHP:
<?
 $id_padre
=$_POST['id_padre'];
   
$id_hija=$_POST['id_hija'];


   
// Inicio Formulario .. PHP_SELF enviamos a si mismo (a este script).
  // echo "<form action=\"".$_SERVER['PHP_SELF']."\" method=\"POST\">\n\n";
  
     // Formar Selec "Padre".
   
echo "<select name=\"id_padre\" onChange=\"this.form.submit()\">\n";
   echo 
"<option value=\"\">Seleccioni una opció</option>\n";
   
   
$SQLconsulta_padre="SELECT * FROM CDU_general";
   
$consulta_padre mysql_query($SQLconsulta_padre,$db) or die(mysql_error());

   while   (
$registro_padre=mysql_fetch_assoc($consulta_padre)){
      
// Se mira si el ID del registro es el mismo q el $id_padre q recibimos si hemos cambiado el select hijo.
      // Se selecciona en consecuencia (selected) la opción elegida.
      
if ($id_padre == $registro_padre['id']){
         echo 
"<option value=\"".$registro_padre['id']."\" selected>".$registro_padre['text']."</option>\n";
      } else {
         echo 
"<option value=\"".$registro_padre['id']."\">".$registro_padre['text']."</option>\n";
      }
    }
   echo 
"</select>\n\n";

   
mysql_free_result($consulta_padre); // Liberar memoria usada por consulta.

   // Formar Select "Hijo"
   
echo "<select name=\"id_hija\" onblur='cambiar();'>\n";

   
// Si $id_padre no tiene valor (caso de que no se ha seleccionado ningua opcion del select hijo
   // se muestra el mensaje de "seleccine un item" (del select padre).
   
if (!empty($id_padre)){

       
$SQLconsulta_hija="SELECT * FROM CDU_especific WHERE id_pare='$id_padre'";
       
$consulta_hija mysql_query($SQLconsulta_hija,$db) or die(mysql_error());
       
// se mira el total de registros de la consulta .. si es 0 se muestra mensaje en el select ..
       
if (mysql_num_rows($consulta_hija) != 0){

          while   (
$registro_hija=mysql_fetch_assoc($consulta_hija)){
          if (
$id_hija == $registro_hija['id_hija']){
            echo 
"<option value=\"".$registro_hija['id']."\" selected>".$registro_hija['text']."</option>\n";
          }else{
              echo 
"<option value=\"".$registro_hija['id']."\">".$registro_hija['text']."</option>\n";
          }
          
          }
        } else {
            echo 
"<option value=\"\"> No hay registros para este Item </option>";
        }
    } else {

        echo 
"<option value=\"\"><-- Seleccioni una opció</option>";
    }

    
mysql_free_result($consulta_hija); // Liberar memoria usada por consulta.
    
    
echo "</select>\n\n";   
?>
he probado recogiendo el identificador del segundo combobox y haciendo el "selected" pero no lo hace....

espero que me puedan echar un cable, por favor.

Gracias y espero haber sido explicativa....
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:30.