Foros del Web » Programando para Internet » PHP »

enviar optgroup

Estas en el tema de enviar optgroup en el foro de PHP en Foros del Web. saludos foreros: bueno quisiera que me ayuden en un formulario select que tengo que enviar por mail: Código HTML: <select name= "rubro" > <option> Bares ...
  #1 (permalink)  
Antiguo 24/03/2008, 09:48
 
Fecha de Ingreso: diciembre-2005
Mensajes: 97
Antigüedad: 18 años, 4 meses
Puntos: 0
enviar optgroup

saludos foreros:
bueno quisiera que me ayuden en un formulario select que tengo que enviar por mail:
Código HTML:
<select name="rubro">
<option>Bares </option>
<option>Boutique </option>
<optgroup label="Busca trabajo">
  <option>Administracion</option>
  <option>Comercial</option>
 <option>Educativos</option>
</optgroup> 
y en mi archivo php recibo la variable rubros asi:
Código PHP:
$rubro=$_POST['rubro']; 
mi problema es que por ejemplo cuando escojo la opcion Comercial, al correo solo me llega:
Código:
rubro: Comercial
y pues quisiera en sea un poco mas espefifico y me llege un poco mas detallado, mas o menos de esta manera:
Código:
Rubro: busca Trabajo
Sub-rubro: Comercial
me imagino que tengo que introducir una nueva variable para recibir el nombre de optgroup, pero no tengo idea de como hacerlo.
__________________
_Derek_
  #2 (permalink)  
Antiguo 24/03/2008, 09:59
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: enviar optgroup

Hola pavelinhos,

La etiqueta optgroup no forma parte del formulario, por lo que no se envia en un submit como variable.

Tendrías que de cierta forma saber que sub-rubros pertenecen a que rubro para entonces en tu PHP rescatar ese valor, compararlo y obtener el rubro.

Saludos.
  #3 (permalink)  
Antiguo 24/03/2008, 10:42
 
Fecha de Ingreso: diciembre-2005
Mensajes: 97
Antigüedad: 18 años, 4 meses
Puntos: 0
Re: enviar optgroup

Hola GatorV:
mi formulario tiene la siguiente estructura:
  • Bares
  • boticas
  • buscas trabajo
    • Administracion
    • comercial
    • etc, etc
  • etc, etc
los sub-rubros:administracion, comercial, etc; pertenecen al rubro busca trabajo;

Y seria posbile hacer esto?
Código HTML:
<optgroup label="Busca trabajo" name="variable"> 
Código PHP:
$variable=$_POST['variable']; 
__________________
_Derek_
  #4 (permalink)  
Antiguo 24/03/2008, 11:55
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: enviar optgroup

Hola pavelinhos,

Como te comente anteriormente, no puedes hacer eso ya que el optgroup no se envía junto con tu formulario, lo que podrías hacer es tener una estructura en un arreglo:
Código PHP:
$opciones = array(
       
"Bares",
       
"Boticas",
       
"Buscas Trabajo" => array(
                
"Administracion",
                
"Comercial",
       )
); 
Luego por decir usar esta función:
Código PHP:
function array_search_recursive($needle$haystack$nodes=array())
{     
  foreach (
$haystack as $key1=>$value1)
  {
    if (
is_array($value1))
      
$nodes array_search_recursive($needle$value1$nodes);
   elseif ((
$key1 == $needle) or ($value1 == $needle))
      
$nodes[] = array($key1=>$value1);
  }
  return 
$nodes;

y buscar el nodo padre:
Código PHP:
$rubro $_POST['rubro'];
list( 
$rubro$subrubro ) = array_search_recursive$rubro$opciones );

printf"Rubro: %s<br />Sub Rubro: %s" $rubro$subrubro ); 
Saludos.
  #5 (permalink)  
Antiguo 24/03/2008, 12:16
 
Fecha de Ingreso: diciembre-2005
Mensajes: 97
Antigüedad: 18 años, 4 meses
Puntos: 0
Re: enviar optgroup

Ok GatorV , ya entendi; voy a implementar el codigo que pusiste y luego te cuento como me fue
Bye
__________________
_Derek_
  #6 (permalink)  
Antiguo 27/03/2008, 17:24
 
Fecha de Ingreso: diciembre-2005
Mensajes: 97
Antigüedad: 18 años, 4 meses
Puntos: 0
Re: enviar optgroup

Hola despues de consultar varias fuentes, llegue a darle solucion de la siguiente forma; aqui el codigo para que les sea util cuando lo necesiten:

Código PHP:
<?php
$grupos 
= array(
    
'bt' => array(
        
'title' => 'Busca Trabajo',
        
'items' => array('Busca Trabajo Uno','Busca trabajo 2')
    ),

    
'vc' => array(
        
'title' => 'Vende casas',
        
'items' => array('Vende tu cuarto','Vende tu silla','Vendete tu mismo')
    )
);

?>
y el html:
Código HTML:
<html>
<head>
</head>
<body>

<form action="" method="post">

<select name="algo">
	<?foreach($grupos as $grupo_id => $grupo){?>
	<optgroup label="<?=$grupo['title']?>">
		<?foreach($grupo['items'] as $i => $item){?>
		<option value ="<?=$grupo_id?>-<?=$i?>"><?=$item?></option>
		<?}?>
	</optgroup>
	<?}?>
</select>

<input type="submit" value="enviar" />

</form>
</body>
</html> 
Y de paso agradecer a GatorV por guiarme
__________________
_Derek_
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 08:19.