Foros del Web » Programando para Internet » PHP »

Darle valor a una variable en un form select

Estas en el tema de Darle valor a una variable en un form select en el foro de PHP en Foros del Web. Hola a tod@s Vereis tengo el siguiente código donde relleno de una base de datos Mysql un select, al seleccionar una opción en dicho select ...
  #1 (permalink)  
Antiguo 06/05/2012, 02:40
 
Fecha de Ingreso: enero-2011
Ubicación: España
Mensajes: 222
Antigüedad: 13 años, 10 meses
Puntos: 7
Darle valor a una variable en un form select

Hola a tod@s

Vereis tengo el siguiente código donde relleno de una base de datos Mysql un select, al seleccionar una opción en dicho select tengo que pasar el valor seleccionado a la variable "ordenar", para probar si el valor de dicha variable lo pasa bien, donde la tengo que utilizar luego, le he puesto en la linea 4 un valor fijo y funciona, pero lo que quiero no es ponerle un valor fijo, si no que coja el valor de la selección que se realiza en el select.

Donde pone "ordenar= Hab ASC" en la linea 4 he probado varias cosas y he indagado por la red pero no he encontrado la forma de hacerlo, espero haberme esplicado bien y que me podais ayudar.

Un saludo
Código PHP:
Ver original
  1. <FORM NAME="Ordenar">
  2.  <select name="ordenar" id="ordenar"  size="1"  class="Guias2"
  3.                     onChange="if(options[selectedIndex].value)
  4.                     window.location.href='Index1.php?ordenar=Hab ASC';
  5.                     (options[selectedIndex].value)">      
  6. <?php
  7.     $tablaordenar = mysql_query("SELECT * FROM ordenar ORDER BY Descrip_Orden ASC");
  8.     while ($registroordenar = mysql_fetch_array($tablaordenar)) {
  9. ?>
  10. <option value="<?php echo $registroordenar['Ordenacion']; ?>">&nbsp;<?php echo $registroordenar['Descrip_Orden']; ?></option>
  11.  
  12. <?php
  13.     }
  14.     mysql_free_result($tablaordenar);
  15. ?>
  16. </select>
  17.  
  18.  </FORM>
  #2 (permalink)  
Antiguo 06/05/2012, 04:48
 
Fecha de Ingreso: agosto-2011
Ubicación: Santo Domingo
Mensajes: 487
Antigüedad: 13 años, 4 meses
Puntos: 31
Respuesta: Darle valor a una variable en un form select

Saludos amigos, Puedes hacer lo siguiente,,,

<FORM NAME="Ordenar">
<select name="ordenar" id="ordenar" size="1" class="Guias2"
onChange="if(options[selectedIndex].value)
window.location.href='Index1.php?ordenar=<?php echo $registroordenar['Ordenacion']; ?>ASC';
(options[selectedIndex].value)">
<?php
$tablaordenar = mysql_query("SELECT * FROM ordenar ORDER BY Descrip_Orden ASC");
while ($registroordenar = mysql_fetch_array($tablaordenar)) {
?>
<option value="<?php echo $registroordenar['Ordenacion']; ?>">&nbsp;<?php echo $registroordenar['Descrip_Orden']; ?></option>

<?php
}
mysql_free_result($tablaordenar);
?>
</select>

</FORM>
  #3 (permalink)  
Antiguo 06/05/2012, 05:48
 
Fecha de Ingreso: enero-2011
Ubicación: España
Mensajes: 222
Antigüedad: 13 años, 10 meses
Puntos: 7
Respuesta: Darle valor a una variable en un form select

Gracias gldelossantos por tu ayuda, pero de esa forma no puede funcionar ya que la habia probado y por logica lo que hace es leerme todas las opciones de mi tabla y da el siguiente error:
Cita:
Call Stack #TimeMemoryFunctionLocation 10.0157387584{main}( )..\index1.php:0 ASC'; (options[selectedIndex].value)"> Hab. (Mayor a Menor) Hab. (Menor a Mayor) Precio (Mayor a Menor) Precio (Menor a Mayor) Precio ASC
lo que tengo que poner en la variable es el valor seleccionado en el select para usarlo luego.
A ver si alguien me puede echar un cable aunque sea al cuello,
Un saludo.
  #4 (permalink)  
Antiguo 06/05/2012, 05:53
 
Fecha de Ingreso: agosto-2011
Ubicación: Santo Domingo
Mensajes: 487
Antigüedad: 13 años, 4 meses
Puntos: 31
Respuesta: Darle valor a una variable en un form select

Disculpa tienes razon, en verdad la manera adecuada es hacer un switch con las diferentes consulta, tienes idea de como hacerlo??
  #5 (permalink)  
Antiguo 06/05/2012, 06:18
 
Fecha de Ingreso: enero-2011
Ubicación: España
Mensajes: 222
Antigüedad: 13 años, 10 meses
Puntos: 7
Respuesta: Darle valor a una variable en un form select

Lo de el switch, no tengo ni idea de como hacerlo.
Pero se que hay una forma muy sencilla de pasar el valor de la opción elegida a la variable, lo que ocurre es que a veces cuando las cosas son sencillas se complican y no das con la solución, se que existe esa posibilidad porque una vez la utilice, pero no me acuerdo como narices lo hice y eso me pone mas nervioso por las horas que pierdo haciendo pruebas y teniendo la solución en la punta de la nariz.
Vamos a ver si entre los dos lo conseguimos, gracias.
  #6 (permalink)  
Antiguo 06/05/2012, 07:06
 
Fecha de Ingreso: agosto-2011
Ubicación: Santo Domingo
Mensajes: 487
Antigüedad: 13 años, 4 meses
Puntos: 31
Respuesta: Darle valor a una variable en un form select

ok con el switch lo puedes hacer de la siguiente manera

<?
$option=2;
switch ($option) {
case 1:
echo "Aqui tu codigo de consulta";
break;
case 2:
echo "la opcion 2";
break;
case 3:
echo "la opcion 3";
break;
case 4:
echo "la opcion 4";
break;
}
?>

Espero te sirva y te la recomiendo..
  #7 (permalink)  
Antiguo 06/05/2012, 07:39
 
Fecha de Ingreso: enero-2011
Ubicación: España
Mensajes: 222
Antigüedad: 13 años, 10 meses
Puntos: 7
Respuesta: Darle valor a una variable en un form select

Ya pero de esa manera tengo que poner todas las opciones como si pusiera esto mas o menos:
Cita:
<option disabled="disabled" value="">&nbsp;Código Postal - 00008
<option disabled="disabled" value="">&nbsp;Código Postal - 00009
<option disabled="disabled" value="">&nbsp;Código Postal - 00010
<option disabled="disabled" value="">&nbsp;Código Postal - 00011
<option disabled="disabled" value="">&nbsp;Código Postal - 00012
etc...
y lo que quiero evitar es eso ya que aunque las opciones que pongo en mi tabla son solamente 4 para probar, en realidad van a ser bastantes, es mas lo que quiero al utilizar la tabla es poder utilizarla en mis distintas páginas y ahorrarme un montón de código.

Tengo que seguir buscando la forma, Gracias.
  #8 (permalink)  
Antiguo 06/05/2012, 07:58
Avatar de gjx2  
Fecha de Ingreso: agosto-2008
Ubicación: R.D
Mensajes: 1.153
Antigüedad: 16 años, 4 meses
Puntos: 139
Respuesta: Darle valor a una variable en un form select

Hola @unexes, si mal no entendí creo que esto debe de funcionar.

Código HTML:
Ver original
  1. <script type="text/javascript">
  2.    
  3.     function order_by(selection)
  4.     {
  5.                     window.location.href = 'Index1.php?ordenar='+selection.value;
  6.     }
  7.  
  8.  
  9. <FORM NAME="Ordenar">
  10.  
  11. <select name="ordenar" id="ordenar" size="1" class="Guias2" onChange="order_by(this)">
  12. <option value="Hab asc">Hab asc</option>
  13. <option value="Hab desc">Hab desc</option>
  14.  
  15. </FORM>

Saludos.
  #9 (permalink)  
Antiguo 06/05/2012, 08:41
 
Fecha de Ingreso: enero-2011
Ubicación: España
Mensajes: 222
Antigüedad: 13 años, 10 meses
Puntos: 7
Respuesta: Darle valor a una variable en un form select

Gracias gjx2, creo que lo entendiste mal, justamente lo que intento evitar es poner las opciones en el código del select si tengo que poner todas las opciones se como hacerlo para que funcione.

Lo que intento es que el select que se ha llenado correctamente con los datos del campo "Ordenacion" de la base de datos que es donde se encuentran las diferentes opciones, al seleccionar una opción pase ese valor a una variable llamada "ordenar" luego utilizo esa variable para el ORDER BY, por eso para probarlo en el select le di un valor fijo y funciona, lo que quiero y siento repertirme es que al seleccionar en el select una de las opciones con las que se ha rellenado pase dicho valor a la variable.
Creo que esto se a convertido para mi en un reto, tengo que conseguir que funcione.
Gracias a los 2 por vuestra ayuda. Un saludo
  #10 (permalink)  
Antiguo 06/05/2012, 08:45
Avatar de gjx2  
Fecha de Ingreso: agosto-2008
Ubicación: R.D
Mensajes: 1.153
Antigüedad: 16 años, 4 meses
Puntos: 139
Respuesta: Darle valor a una variable en un form select

Ok, pero el order by siempre sera asc ?
de ser asi entonces solo tienes que

Código HTML:
Ver original
  1. <script type="text/javascript">
  2.    
  3.     function order_by(selection)
  4.     {
  5.                     window.location.href = 'Index1.php?ordenar='+selection.value+' ASC';
  6.     }
  7.  
  8.  
  9. <FORM NAME="Ordenar">
  10.  
  11. <select name="ordenar" id="ordenar" size="1" class="Guias2" onChange="order_by(this)">
  12. <option value="Hab">Hab</option>
  13. <option value="ej2">ej2</option>
  14.  
  15. </FORM>

Saludos.
  #11 (permalink)  
Antiguo 06/05/2012, 09:30
 
Fecha de Ingreso: enero-2011
Ubicación: España
Mensajes: 222
Antigüedad: 13 años, 10 meses
Puntos: 7
Respuesta: Darle valor a una variable en un form select

No el order by no sera siempre ASC sera el valor que se encuentre en la tabla por ejemplo "Hab ASC","Hab DESC" etc,, y lo que NO quiero poner es justamente esto:
Cita:
13.<option value="Hab">Hab</option>
14.<option value="ej2">ej2</option>
Mi codigo inicial es:
Código PHP:
Ver original
  1. <FORM NAME="Ordenar">
  2.  <select name="ordenar" id="ordenar"  size="1"  class="Guias2"
  3.                     onChange="if(options[selectedIndex].value)
  4.                     window.location.href='Index1.php?ordenar=Hab ASC';
  5.                     (options[selectedIndex].value)">      
  6. <?php
  7.     $tablaordenar = mysql_query("SELECT * FROM ordenar ORDER BY Descrip_Orden ASC");
  8.     while ($registroordenar = mysql_fetch_array($tablaordenar)) {
  9. ?>
  10. <option value="<?php echo $registroordenar['Ordenacion']; ?>">&nbsp;<?php echo $registroordenar['Descrip_Orden']; ?></option>
  11.  
  12. <?php
  13.     }
  14.     mysql_free_result($tablaordenar);
  15. ?>
  16. </select>
  17.  
  18.  </FORM>
Nos centramos en el código anterior en la linea 4 y lo que quiero hacer es pasar el valor de lo seleccionado en el select a esa linea 4 justo despues de window.location.href='Index1.php?ordenar=.
Cita:
window.location.href='Index1.php?ordenar=Aquí debo poner el valor que tiene la seleccion realizada en el select';
O en algún otro lugar pero lo que no quiero es poner las opciones, esas ya se encuentran en la tabla.
Un saludo y disculpar la insistencia.

Etiquetas: darle, mysql, registro, select, tabla, variables, formulario
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 13:15.