Foros del Web » Programando para Internet » PHP »

Duda con combo select + PHP

Estas en el tema de Duda con combo select + PHP en el foro de PHP en Foros del Web. Tengo el siguiente select: (les escribo solo un option en el ejemplo) Código HTML: <select> <option value= "logo-designs.php?secc=heal" > HEALTHCARE </option> </select> ocurre que una ...
  #1 (permalink)  
Antiguo 17/07/2007, 14:20
Avatar de maxi_lance  
Fecha de Ingreso: julio-2006
Ubicación: Capital Federal
Mensajes: 220
Antigüedad: 17 años, 9 meses
Puntos: 2
Duda con combo select + PHP

Tengo el siguiente select: (les escribo solo un option en el ejemplo)

Código HTML:
<select>
<option value="logo-designs.php?secc=heal">HEALTHCARE</option>
</select> 
ocurre que una vez que elijo esta opcion al volver a cargarse la pagina, quiero que se memorize en el combo el option elegido, en este caso, HEALTHCARE.
Y le coloco un if despues del value:

Código PHP:

<option value="logo-designs.php?secc=heal" <? if ($industry == "logo-designs.php?secc=heal") echo "selected" ?>>HEALTHCARE</option>
pero no me funciona....
  #2 (permalink)  
Antiguo 17/07/2007, 14:33
 
Fecha de Ingreso: abril-2004
Mensajes: 49
Antigüedad: 20 años
Puntos: 1
Re: Duda con combo select + PHP

Si ese código no te funciona, es porque la variable $industry debe estar mal definida, quizás no usaste el método correcto (GET ó POST)... fijate donde defines o le das valor a esa variable

otra cosa, el select debe tener un nombre, por ejemplo
Código HTML:
<select name="miopcion">
<option> ... </option>
</select> 
sino no enviará variable al servidor que puedas leer


de hecho, es muy posible que a la variable $industry no le des el valor que deseas porque no sabes de donde obtenerlo... justamente porque te falta ese nombre en el select

deberías pegar el código completo y sería más fácil la ayuda
  #3 (permalink)  
Antiguo 17/07/2007, 14:48
Avatar de maxi_lance  
Fecha de Ingreso: julio-2006
Ubicación: Capital Federal
Mensajes: 220
Antigüedad: 17 años, 9 meses
Puntos: 2
Re: Duda con combo select + PHP

gracias outoforder !
el select ya tenía colocado el name=industry..

aqui dejo el codigo entero...

Código PHP:
<select name="industry" class="text_menu2on" style="width:218px;font:Arial;font-size:9px;" onchange="MM_jumpMenu('parent',this,0)">
        <option>choose one</option>
        <option value="logo-designs.php?secc=all" <? if ($industry == "logo-designs.php?secc=all") echo "selected" ?>>ALL</option>
        <option value="logo-designs.php?secc=anim_rel" <? if ($industry == "logo-designs.php?secc=anim_rel") echo "selected" ?>>ANIMALS RELATED</option>
        <option value="logo-designs.php?secc=arq" <? if ($industry == "logo-designs.php?secc=arq") echo "selected" ?>>ARCHITECTURE AND CONSTRUCTION</option>
        <option value="logo-designs.php?secc=art" <? if ($industry == "logo-designs.php?secc=art") echo "selected" ?>>ART, DESIGN AND PHOTOGRAPHY</option>
</select>
  #4 (permalink)  
Antiguo 17/07/2007, 15:00
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Re: Duda con combo select + PHP

Si tienes desactivado los globales, es mas recomendable usar $_POST o $_GET es decir:
Código:
$_GET['industry']
Saludos.
  #5 (permalink)  
Antiguo 17/07/2007, 15:03
 
Fecha de Ingreso: abril-2004
Mensajes: 49
Antigüedad: 20 años
Puntos: 1
Re: Duda con combo select + PHP

Bueno, eso está mejor, pero aún no se ve donde defines $industry
Y tampoco se ve el método que usas en el <form>

Cualquiera sea el caso, lo que debes hacer es asignarle a $industry el valor de la variable que elija el usuario.
Para eso debes poner algo como esto, antes de mostrar ese formulario:
Código PHP:
<?
$industry 
$_REQUEST['industry'];
?>
Sin embargo te recomiendo que en vez de $_REQUEST uses $_POST (o a lo sumo $_GET), para eso cambias el valor del method en la etiqueta <form> a "post" o "get":
Código HTML:
<form ... method="post" ...> 
Espero hayas entendido quizá faltó esmero en mi explicación xD
  #6 (permalink)  
Antiguo 17/07/2007, 15:32
Avatar de maxi_lance  
Fecha de Ingreso: julio-2006
Ubicación: Capital Federal
Mensajes: 220
Antigüedad: 17 años, 9 meses
Puntos: 2
Re: Duda con combo select + PHP

he corroborado lo que me dijsites y sigue sin funcionar. Puede ser que al enviarle el method a la misma pagina, se pierda el valor de $industry por haber un switch al principio del archivo... ?

Código PHP:
switch ($secc){
    case 
'all':
    include (
"logo-designs-all.php");
    break;
    case 
'anim_rel':
    
$page "logo-designs" ;
    
$se "anim_rel" ;
    
$num "2" ;
    break;
        ..........
    default:
    include (
"logo-designs-all.php");
    break;

Código HTML:
<form method="POST" action="<?PHP echo $PHP_SELF ?>"><select name="industry" onchange="MM_jumpMenu('parent',this,0)">
<option>choose one</option>
		<option value="logo-designs.php?secc=all" <? if ($industry == "logo-designs.php?secc=all") echo "selected" ?>>ALL</option>
        <option value="logo-designs.php?secc=anim_rel" <? if ($industry == "logo-designs.php?secc=anim_rel") echo "selected" ?>>ANIMALS RELATED</option>
        <option value="logo-designs.php?secc=arq" <? if ($industry == "logo-designs.php?secc=arq") echo "selected" ?>>ARCHITECTURE AND CONSTRUCTION</option>
</select> 
o será porque tengo el evento onchange para que vaya al seleccionado sin hacer click.. ?
  #7 (permalink)  
Antiguo 17/07/2007, 15:44
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Re: Duda con combo select + PHP

Tu problema es que en el onchange no se envia la variable original si no solo se redirige al valor actual. Necesitas modificar tu funcion MM_Jumpmenu para que incluya la variable nueva.

Saludos.
  #8 (permalink)  
Antiguo 17/07/2007, 19:28
 
Fecha de Ingreso: abril-2004
Mensajes: 49
Antigüedad: 20 años
Puntos: 1
Re: Duda con combo select + PHP

Cita:
Iniciado por GatorV Ver Mensaje
Tu problema es que en el onchange no se envia la variable original si no solo se redirige al valor actual. Necesitas modificar tu funcion MM_Jumpmenu para que incluya la variable nueva.

Saludos.
En realidad, para lo que maxi_lance quiere hacer, no hace falta cambiar el JS.

GatorV tiene razón, la variable no se envía, pero tampoco es necesario que la envíes porque ahora que lo veo, ya estás enviando una variable via GET llamada secc, que es la que debes usar.
Pon esto antes de tu formulario:
Código PHP:
<?
$industry 
$PHP_SELF '?secc=' $_GET['secc'];
?>
Entonces, los if que tienes debajo funcionarán para el caso indicado.

Sin embargo te recomiendo que lo hagas más simple. En vez de poner el nombre de la página en los options, pon simplemente el nombre de la sección ("all", "anim_rel", etc) y en los if's comparas esos nombres con la variable $industry.
Y defines $industry así:
Código PHP:
<?
$industry 
$_GET['secc'];
?>
Dinos cómo te ha ido
  #9 (permalink)  
Antiguo 18/07/2007, 08:21
Avatar de maxi_lance  
Fecha de Ingreso: julio-2006
Ubicación: Capital Federal
Mensajes: 220
Antigüedad: 17 años, 9 meses
Puntos: 2
Re: Duda con combo select + PHP

La forma en que me funciono es agregandole a cada case del switch la variable
$industry = $_GET['secc'] ;

pero en los option del select tuve que cambiar el nombre solo en el IF , ya que colocando solo "all" o "anim_rel" en el option no me dirijía correctamente la url

Código PHP:
<option value="logo-designs.php?secc=animrel" <? if ($industry == "animrel") echo "selected" ?>>ANIMALS RELATED</option>
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:47.