Foros del Web » Programando para Internet » PHP »

Manipulacion de seleccion Combo

Estas en el tema de Manipulacion de seleccion Combo en el foro de PHP en Foros del Web. Una pregunta Comunidad, como le hago para manipular la seleccion de un Combo, lo que quiero hacer es que elija un campo para que en ...
  #1 (permalink)  
Antiguo 03/06/2003, 17:28
 
Fecha de Ingreso: mayo-2003
Ubicación: México
Mensajes: 125
Antigüedad: 14 años, 7 meses
Puntos: 0
Manipulacion de seleccion Combo

Una pregunta Comunidad, como le hago para manipular la seleccion de un Combo, lo que quiero hacer es que elija un campo para que en base a esto ordene una consulta...el combo lo desplego con una etiqueta select, pero no se que variable validar.

La segunda es, lo debo meter a un Formulario???
La tercera es, de ser la anterior afirmativa, se supone que voy a un archivo PHP, armo la consulta, pero como regresar a la forma y desplegar en base al query armado...???

agradecere sus respuestas...
  #2 (permalink)  
Antiguo 03/06/2003, 17:47
Avatar de lado2mx
Colaborador
 
Fecha de Ingreso: agosto-2001
Ubicación: Veracruz
Mensajes: 3.720
Antigüedad: 16 años, 4 meses
Puntos: 9
1.- realizas una consulta MySQL (supongo) con el combo, ya sea de una o varias base de datos

2.- Necesariamente se necesita de un Formulario para ejecutar el SELECT

3.- Necesitas ora si, hacer una consulta exclusiva, a cada variable que pase por cada opción del Select.

Creo que te respondiste tu mismo esa cuestión que tienes.
Salu2
  #3 (permalink)  
Antiguo 03/06/2003, 17:56
 
Fecha de Ingreso: mayo-2003
Ubicación: México
Mensajes: 125
Antigüedad: 14 años, 7 meses
Puntos: 0
Me quede con dudas

Ok, ahora ya se que tengo que enviar a un formulario, pero como hago la validación? como se que opcion eligió?, podrian ponerme el codigo?, y la otra como regreso a la forma para usar el mismo codigo de desplegado de datos pero con la consulta de acuerdo al criterio que eligio el usuario...???

de nuevo gracias...
  #4 (permalink)  
Antiguo 03/06/2003, 18:12
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Del HTML .. el elemento de formulario "combo" (lista desplegable) es:

Código PHP:
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
<select name="opcion">
   <option value="valor1">Opcion 1</option>
   <option value="valor2">Opcion 1</option>
</select>

<!-- aquí vendría tu boton de submit o podrías hacer algún evento onChange de javascript para que cuando cambies el valor de tu <select> hagas el submit .. -->

</form>

En tu PHP donde envies el "action" de este formulario ahí recibiras la variable de tu <select> que has seleccionado bajo el nombre: opcion (en $_POST['opcion']) .. y el valor que contenga será el que indique el value del option seleccionado .. (independiente de la frase contextual que lo acompaña ..)

Se usa $_SERVER['PHP_SELF'] para enviar el script a si mismo . independiente del nombre que tenga esa página (script) . pues de eso se encarga esa variable de servidor de obtener dicho nombre.

Tu script .. tendra que genear tu consulta SQL adecuada al cambio del <select> que hicistes y predeterminando algún valor inicial para el caso de que no ha llegado todavía nada por $_POST['opcion'] (la primera vez q entres al script y no modifiques tu select ..)

Para esto .. es bueno que uses alguna estructura similar a:

Código PHP:
if (isset($_POST['opcion'])){
   
$opcion=$_POST['opcion'];
} else {
   
$opcion="opcion predetermidada";
}

// y por aquí trabajas tu SQL con $opcion ... ya que esta tomará un valor por defecto en caso de que no esté definida ... 

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 03/06/2003 a las 18:15
  #5 (permalink)  
Antiguo 04/06/2003, 16:56
 
Fecha de Ingreso: mayo-2003
Ubicación: México
Mensajes: 125
Antigüedad: 14 años, 7 meses
Puntos: 0
Sigo sin entender tu codigo, como sabe tu página a que archivo php irse??? si en el action tiene SERVER['PHP_SELF']???;

?php echo $_SERVER['PHP_SELF']; ?>?php echo $_SERVER['PHP_SELF']; ?>
PHP:--------------------------------------------------------------------------------
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
<select name="opcion">
<option value="valor1">Opcion 1</option>
<option value="valor2">Opcion 1</option>
</select>

<!-- aquí vendría tu boton de submit o podrías hacer algún evento onChange de javascript para que cuando cambies el valor de tu <select> hagas el submit .. -->

</form>
  #6 (permalink)  
Antiguo 04/06/2003, 17:06
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
¿? Pero si te lo he explicado ..

Si tu página donde tienes tu formulario y tu código PHP que hace tu consulta a tu BD y la muestra , se llama: pepe.php

echo $_SERVER['PHP_SELF'];

Obtiene dicho nombre (y ruta ademas) .. Leyendo esa variable de servidor ..

Ejecuta el código y edita el código resultante (en tu navegador edición -> ver código fuente) . .veras lo que te comento.

Si el script/página que tienes tu código PHP que hace la consulta a tu BD y la muestra .. no está en el mismo script/página .. le indicas en tu action= del formulario el nombre que corresponda y listo.

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 05/06/2003, 10:58
 
Fecha de Ingreso: mayo-2003
Ubicación: México
Mensajes: 125
Antigüedad: 14 años, 7 meses
Puntos: 0
Ya te entendi Cluster, bueno, realmente creo que era un problema de comunicacion, tu me dices que si tengo todo el codigo en una página use $_SERVER['PHP_SELF']; , pero al parecer no me di a entender que estoy usando 2 archivos, un html donde tengo el formulario y otro php, en ese caso tengo que poner en el action este archivo, para este segundo caso es mi pregunta como decirle que vaya al archivo php y regrese al formulario, por que actualmente no lo hace tengo que darle regresar...
  #8 (permalink)  
Antiguo 05/06/2003, 13:07
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pues redirecciona automáticamente ..

Puedes emplear 3 metodos: (al terminar tu proceso)

Cabeceras enviadas desde PHP al navegador:
Código PHP:
header("location: formulario.tal");
exit; 
Cabeceras HTML <META> de refresh ..
Código:
<META HTTP-EQUIV="refresh" content="2;URL=pagina.tal">
(el "2" define el tiempo que tardará en redireccionar ..)

Redireccionamiento javascript (por ejemplo):
Código:
<script languaje="javascript">
  window.location.replace("formulario.tal"):
</script>
Te recomiendo la primera (header) .. pues el el redireccionamiento más rápido y transparente .. El redirecciomiento puede incluir algunas variables de control si las necesitas tan sólo generando el "URL" típo:

pagina.tal?variable=valor


Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #9 (permalink)  
Antiguo 05/06/2003, 13:18
 
Fecha de Ingreso: mayo-2003
Ubicación: México
Mensajes: 125
Antigüedad: 14 años, 7 meses
Puntos: 0
agradezco, tus respuestas y tu tiempo Cluster, me han sido de mucha ayuda, gracias...
__________________
Visita mi Weblog de Ingeniería de Software
  #10 (permalink)  
Antiguo 05/06/2003, 18:00
 
Fecha de Ingreso: mayo-2003
Ubicación: México
Mensajes: 125
Antigüedad: 14 años, 7 meses
Puntos: 0
Va de nuevo Cluster

perdon Cluster, pero soy principiante...tengo lo siguiente...
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" target="_self">
<select name="Orden">
<option value="Direccion" selected> Dirección</option>
<option value="Categoria"> Categoría</option>
</select>
<input type="submit" value="Ordenar">
</form>


Como validar que eligio el usuario?, que variable guarda el resultado??

if(<Que condicion pongo?>) <<<-esto es lo que necesito resolver
.
.
Sentencias
  #11 (permalink)  
Antiguo 05/06/2003, 19:47
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
NO inicies nuevos temas si tienen relación con un tema que ya tienes abierto .. Tampoco te dirijas a mi personalmente (en un mensaje público al foro) pese que te he estado ayudando yo en esta ocasión (nunca desmerezcas la ayuda que cualquier usuario te puede prestar .. )

----------

En tu ejemplo .. en $_POST['Orden'] tienes tu variable, que tomará el valor "Direccion" o "Categoria" dependiendo de la que seleccione .. .

Así que tus condionales serán del tipo:

Código PHP:
if ($_POST['Orden'] == "Direccion"){
// Haces lo que tengas que hacer si seleccionan "Direccion" ...
} elseif ($_POST['Orden'] == "Categoria"){
 
// haces lo que tengas que hacer si seleccionan "Categoria"
} else {
// Haces lo que tengas que hacer si no han seleccionando ninguna de las anteriores (En tu caso "preseleccionas" una opcion .. pero podrías forzar a que eligan una opción sin que necesariamente muestres una pre-seleccionada ..)

Otro típo de sentencias condicionales (estructuras de control) es usar switch()

Código PHP:
switch ($_POST['Opcion']) {
   case 
"Direccion":
       
// haces lo que corresponda si seleccionan Direccion ..
       
break;
   case 
"Categoria":
       
// haces lo que corresponda si seleccionan Categoria ..
       
break;
   default:
        
// Haces lo que tengas que hacer si no es ninguna de las anteriores opciones ..

Como veras .. el switch() es algo mas "obvio" de ver y entender .. se usa muchoo en estrucutras tipo la que tienes: Una variable -> varias opciones ..

Un saludo,

pd: En las FAQ's de este foro tienes una buena relación de manuales de PHP .. Pero tal vez te haga falta aprender algo mas de HTML y formaulario para que comprendas como se manejan elementos de formulario como una "lista desplegable" (List box o combo . como lo quieras llamar ...) ..
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 05/06/2003 a las 19:50
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:23.