Foros del Web » Programando para Internet » PHP »

Problema con el value del select

Estas en el tema de Problema con el value del select en el foro de PHP en Foros del Web. Hola!!! Tengo 3 select dependientes que lleno con el contenido de una bd pero tengo algunos problemitas con los select: 1. No me pone el ...
  #1 (permalink)  
Antiguo 26/04/2006, 10:48
 
Fecha de Ingreso: septiembre-2005
Mensajes: 141
Antigüedad: 18 años, 7 meses
Puntos: 0
Pregunta Problema con el value del select

Hola!!!

Tengo 3 select dependientes que lleno con el contenido de una bd pero tengo algunos problemitas con los select:
1. No me pone el texto que indico que es el seleccionado inicialmente, solo en el primer select lo hace.
2. Cómo puedo hacer para que me tome en cuenta el valor del campo seleccionado inicialmente??? A los letreros iniciales les asigno un valor de 0, y cuando se carga la pagina (solo para ver que esta pasando) imprimo los valores que toman los select, si los valores iniciales tienen 0 se supone que deberia imprimirme inicialmente 3 ceros pero no imprime nada, hasta que selecciono algun item.

Les dejo el código
Código PHP:
<form name="form1" method="POST" action="<?php echo $editFormAction?>">
  <table width="414" border="0" align="center">
    <tr>
      <td width="131" height="30"><span class="Estilo3">nombre</span></td>
      <td width="273"><span class="Estilo3"><span class="Estilo5">
      <?php
      
if(isset($_POST['nombre'])) 
        echo 
"<input name='nombre' type='text' id='nombre' size='40' maxlength='40' value=".$_POST['nombre'].">";
      else
        echo 
"<input name='nombre' type='text' id='nombre' size='40' maxlength='40' >"
    
?>
      </span></span></td>
    </tr>
    <tr>
      <td height="29"><span class="Estilo3"><span class="Estilo5">apellido</span></span></td>
      <td width="273"><?php
      
if(isset($_POST['nombre'])) 
        echo 
"<input name='apellido' type='text' id='apellido' size='40' maxlength='40' value=".$_POST['apellido'].">";
      else
        echo 
"<input name='apellido' type='text' id='apellido' size='40' maxlength='40' >"
    
?>     </td>
    </tr>
    <tr> 
      <td height="39"><span class="Estilo3">disciplina</span></td>
      <td><span class="Estilo5"> // PRIMER SELECT
        <select name="disciplina" size="1" id="disciplina" onChange="this.form.submit()">
             <option value="0" selected >Seleccione una Disciplina</option>
              <?php
            
do {  
                
$clave=$_POST['disciplina'];
                
                if(
$clave==$row_disciplina['CveClase']){ 
                  echo 
"<option value=\"".$row_disciplina['CveClase']."\" selected>".$row_disciplina['Nombre']."</option>\n";
                }
               else{ 
                 echo 
"<option value=\"".$row_disciplina['CveClase']."\" >"$row_disciplina['Nombre']."</option>\n";
                }
            } while (
$row_disciplina mysql_fetch_assoc($disciplina));
                  
$rows mysql_num_rows($disciplina);
                  if(
$rows 0) {
                      
mysql_data_seek($disciplina0);
                      
$row_disciplina mysql_fetch_assoc($disciplina);
               }
        
          
?>
        </select>
      </span></td>
    </tr>
    <tr>
      <td height="44" class="Estilo3">Categoria</td>
      <td><font color="#0066CC">
      <span class="Estilo5">
                                          //SEGUNDO SELECT
           <select name="categoria" size="1" id="categoria" onChange="this.form.submit()"  >    
        <option value="0" selected  >Seleccione una Categoría</option>  
          <?php
            
            mysql_select_db
($database_PAGINA$PAGINA);
            
$query_categoria "SELECT * FROM subcategorias WHERE CveClase='$clave' ORDER BY Nombre ASC";
            
$categoria mysql_query($query_categoria$PAGINA) or die(mysql_error());
            
$row_categoria mysql_fetch_assoc($categoria);
            
$totalRows_categoria mysql_num_rows($categoria);
            
            do {  
            
                
$clave2=$_POST['categoria'];
                    
                if(
$clave2==$row_categoria['CveSub']){ 
                  echo 
"<option value=\"".$row_categoria['CveSub']."\" selected>".$row_categoria['Nombre']."</option>\n";
                }
               else{ 
                 echo 
"<option value=\"".$row_categoria['CveSub']."\" >"$row_categoria['Nombre']."</option>\n";
                }
         
            } while (
$row_categoria mysql_fetch_assoc($categoria));
              
$rows mysql_num_rows($categoria);
              if(
$rows 0) {
                  
mysql_data_seek($categoria0);
                  
$row_categoria mysql_fetch_assoc($categoria);
              }
            
?>
        </select>
      </font></td>
    </tr>
    <tr>
      <td height="44" class="Estilo3">HORARIO</td>
      <td><font color="#0066CC"> //TERCER SELECT
        <select name="hora" size="1" id="hora" onChange="this.form.submit()" >
          <option value="0" selected >Seleccione el Horario </option>
          <?php
            
            $clave3
=$_POST['hora'];
            
            
mysql_select_db($database_PAGINA$PAGINA);
            
$query_horario "SELECT * FROM horarios WHERE CveSub='$clave2' ORDER BY Hora ASC";
            
$horario mysql_query($query_horario$PAGINA) or die(mysql_error());
            
$row_horario mysql_fetch_assoc($horario);
            
$totalRows_horario mysql_num_rows($horario);
            
            do {  

              
$row_horario['Hora']= substr($row_horario['Hora'], 0,-3);

              if(
$clave3==$row_horario['CveHr']){ 
                  echo 
"<option value=\"".$row_horario['CveHr']."\" selected>".$row_horario['Hora']."</option>\n";
                }
               else{ 
                 echo 
"<option value=\"".$row_horario['CveHr']."\" >"$row_horario['Hora']."</option>\n";
                    }
          
                } while (
$row_horario mysql_fetch_assoc($horario));
                  
$rows mysql_num_rows($horario);
                  if(
$rows 0) {
                      
mysql_data_seek($horario0);
                      
$row_horario mysql_fetch_assoc($horario);
                  }
  
            
?>
        </select>
      </font></td>
    </tr>
    <tr>
      <td height="33" class="Estilo3">PERIODO</td>
      <td><span class="Estilo3"><span class="Estilo5">
        <select name="periodo" size="1" id="periodo" >
          <option value="Mayo-Julio" selected>Mayo - Julio</option>
        </select>
      </span></span></td> 
    </tr>
  </table> 
  <p><?php echo $clave." ".$clave2." ".$clave3;
      
?>&nbsp;</p>
  <div align="center">
    <p class="Estilo3">
      <input name="inscribir" type="submit" id="inscribir" value="Inscribir">
    </p>
  </div>
  <input type="hidden" name="MM_insert" value="form1">
</form>
<p align="center" class="Estilo3">&nbsp;</p>
<p align="left" class="Estilo3"><a href="../inicio_socio.php" class="Estilo2">Regresar</a></p>
<p align="left" class="Estilo3">&nbsp;</p>
</body>
</html>
<?php
mysql_free_result
($horario);

mysql_free_result($disciplina);

mysql_free_result($categoria);
?>
__________________
:ojotes: A n I t A :ojotes:
  #2 (permalink)  
Antiguo 27/04/2006, 07:44
 
Fecha de Ingreso: septiembre-2005
Mensajes: 141
Antigüedad: 18 años, 7 meses
Puntos: 0
Creo que o nadie me entendio o nadie sabe como hacerlo o eso no se puede hacer
__________________
:ojotes: A n I t A :ojotes:
  #3 (permalink)  
Antiguo 27/04/2006, 08:04
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Si cres que nadie te entendió .. intenta explicarlo de otra forma .. poner ejemplos .. dar algún URL donde ver en funcionamiento ese código. Todo con el objetivo de exponer más claro tu problema.

Realmente por mi parte no entendí el problema por qué dices:
Cómo puedo hacer para que me tome en cuenta el valor del campo seleccionado inicialmente???

Pero en tu código usas la técnica que corresponde a ese proceso:
Cita:
if($clave3==$row_horario['CveHr']){
echo "<option value=\"".$row_horario['CveHr']."\" selected>".$row_horario['Hora']."</option>\n";
}
else{
echo "<option value=\"".$row_horario['CveHr']."\" >". $row_horario['Hora']."</option>\n";
}

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #4 (permalink)  
Antiguo 27/04/2006, 08:41
 
Fecha de Ingreso: septiembre-2005
Mensajes: 141
Antigüedad: 18 años, 7 meses
Puntos: 0
Cita:
Cómo puedo hacer para que me tome en cuenta el valor del campo seleccionado inicialmente???
Bueno vez que tengo

Cita:
<select name="disciplina" size="1" id="disciplina" onChange="this.form.submit()">
<option value="0" selected >Seleccione una Disciplina</option>

// Y lo lleno dinamicamente con el contenido de la bd

<select name="categoria" size="1" id="categoria" onChange="this.form.submit()" >
<option value="0" selected >Seleccione una Categoría</option>
// Y lo lleno dinamicamente con el contenido de la bd

<select name="hora" size="1" id="hora" onChange="this.form.submit()" >
<option value="0" selected >Seleccione el Horario </option>
// Y lo lleno dinamicamente con el contenido de la bd
Como en varias paginas el primer item de los select en ocasiones es un texto para indicar algoy por esto es el que esta seleccionado por default, en este caso es Seleccione Disciplina, Seleccione Categoria, Seleccione Horario, y les asigno un value=0.

El problema es que cuando cargo la pagina para empezar solo me aparece el texto default en el select de Disciplina en el de Categoria y Horario no aparece nada inicialmente, si esta ahi pero se ve cuando das clic para desplegar los valores de ese select.

Luego lo que hago es imprimir los valores que van tomando los select (de prueba nada mas) y estan de acuerdo que si asigno un value de 0 al primer item de los select deberia imprimir inicialmente los 3 ceros correspondientes a los 3 select? pues no lo hace.

Y necesito que tomen unos valores inicialmente para hacer una condicion para que me la inserte a la bd cuando ya tengan algun valor los 3 select, porque si no pongo esa condicion me inserta registros con campos vacios porque no se han seleccionado todos los valores de los select

Aqui les dejo el link para que vean:
http://www.clubtresmarias.com.mx/res...ripciones.php?

Espero haberme explicado mejor

Gracias
__________________
:ojotes: A n I t A :ojotes:
  #5 (permalink)  
Antiguo 27/04/2006, 08:54
 
Fecha de Ingreso: septiembre-2005
Mensajes: 141
Antigüedad: 18 años, 7 meses
Puntos: 0
Pregunta

A ver esta es la dir de la pagina, para ver si queda mas claro

http://www.clubtresmarias.com.mx/res...ripciones.php?

Van a darse cuenta que solo en el primer select aparece el item seleccionado inicialmente, como se puede ver en el codigo

// PRIMER SELECT
<select name="disciplina" size="1" id="disciplina" onChange="this.form.submit()">
<option value="0" selected >Seleccione una Disciplina</option>

//SEGUNDO SELECT
<select name="categoria" size="1" id="categoria" onChange="this.form.submit()" > <option value="0" selected >Seleccione una Categoría</option>

//TERCER SELECT
<select name="hora" size="1" id="hora" onChange="this.form.submit()" >
<option value="0" selected >Seleccione el Horario </option>


Cita:
Cómo puedo hacer para que me tome en cuenta el valor del campo seleccionado inicialmente???
Ademas imprimo los valores que toman los select (solo por prueba) y si les asigno a los items por default un valor de cero se supone que me imprima los 3 ceros que corresponden no?

Necesito que tomen un valor inicialmente al cargar la pagina para poner una condicion y hacer la insercion a la bd porque si no pasa lo siguiente:
- Selecciono la disciplina, se refresca la pagina y se manda la informacion a la bd, pero como aun no he elegido ni categoria ni horario esos campos quedan vacios en la bd
- Luego cuando selecciono categoria como ya existe un registro con los datos de ese usuario me dice que hay una clave duplicada.

Espero haberme explicado un pokitin mejor

Gracias
__________________
:ojotes: A n I t A :ojotes:
  #6 (permalink)  
Antiguo 27/04/2006, 09:40
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
http://www.forosdelweb.com/showthrea...999#post664999

Fijate en esa FAQ y sus ejemplos .. usa exactamente la misma ténica que usas.

SI te fijas, .. el valor de "Seleccione ...." del "option" que corresponda NO se deja fijado su parámetro "selected" pero si que queda el primero de la lista o se toma en cuenta si hay resultados o no para generar ese "option". Será tu lógica PHP y ese "if()" que antes te señalaba el que pre-determinará un valor por defecto si llegas de la recarga de página enviando esos datos a si mismo.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #7 (permalink)  
Antiguo 28/04/2006, 11:00
 
Fecha de Ingreso: septiembre-2005
Mensajes: 141
Antigüedad: 18 años, 7 meses
Puntos: 0
Cluster

Muchisisimas gracias por tu ayuda, ya todo funciona bien

Salu2
__________________
:ojotes: A n I t A :ojotes:
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:43.