Foros del Web » Programando para Internet » PHP »

Creo menus desplegables de forma dinamica y no sé como recoger el resultado...

Estas en el tema de Creo menus desplegables de forma dinamica y no sé como recoger el resultado... en el foro de PHP en Foros del Web. Quien lea esto q lo haga con un poco de paciencia... No sé si voy a saber explicarme bien. A partir de unos ficheros XML ...
  #1 (permalink)  
Antiguo 29/07/2005, 07:33
 
Fecha de Ingreso: mayo-2005
Mensajes: 510
Antigüedad: 19 años, 6 meses
Puntos: 1
Pregunta Creo menus desplegables de forma dinamica y no sé como recoger el resultado...

Quien lea esto q lo haga con un poco de paciencia... No sé si voy a saber explicarme bien.
A partir de unos ficheros XML creo un formulario con menus desplegables de forma dinamica. Tras varios 'atascos' en mi codigo, decidi q la mejor forma de hacerlo era dando a cada menu el un nombre distinto, pero hacer de forma dinamica logicamente (para el q sepa de XML, el nombre de cada menu es el nombre del valor de su etiqueta padre). Es decir, tengo un bucle en el q digo q me vaya creando menus desplegables de la siguiente forma:
<select name=" . $elements[$i-1]->data . " id='menuDropDownH'>

El nombre " $elements[$i-1]->data " es distinto para cada menu. Pero mi duda surge a la hora de recoger el valor seleccionado desde otro script. Como puedo indicar el nombre del menu?? He metido cada uno de los nombres en un vector llamado $arrayNameMDD, he hecho q sea una variable de sesion, pero asi tampoco puedo llamar al menu y coger el resultado
$_SESSION["arrayNameMDD"][$c] = $elements[$i-1]->data;

Es decir, para recoger el resultado voy sacando las componentes del vector de la siguiente forma:
$nameMDD = strtoupper($_SESSION["arrayNameMDD"][$am]);

Y ahora no sé como recoger el valor seleccionado en el menu..., ya q lo siguiente:
$var = $_POST["nameMDD"];

No funciona. Como podria hacerlo?? Necesito hacerlo para insertar los valores en la BD, es el ultimo paso pero me he quedado atascada!! :(
  #2 (permalink)  
Antiguo 29/07/2005, 10:11
 
Fecha de Ingreso: abril-2004
Mensajes: 260
Antigüedad: 20 años, 6 meses
Puntos: 1
Lo que podes hacer, ya que tu variable de session es un array es hacer un loop a travez de tu array tanto con un for como con un foreach, cualquira de los dos puede servirte.
Lo que haces es iterar por cada uno de los elementos de tu array, ejemplo con for each:
<?php
$arr = array("one", "two", "three");

foreach ($arr as $value) {
echo "Value: $value<br>\n";
}
?>

Fijate con esto, cualquier cosa comentá.
__________________
:serio: :adios:
  #3 (permalink)  
Antiguo 29/07/2005, 15:06
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 20 años
Puntos: 34
Estos procesos se hacen de manera inversa.
O sea, vos para dibujar el form var parseando los nodos del xml...y cuando los guardes, tenes que hacer lo mismo. Saquemos el xml para explicartelo.
Suponiendo que tenes un vector con dos posiciones:
Código PHP:
<?php
$var 
= array(1,2);
?>
Y en base a este generamos un formulario
Código PHP:
<?php
$var 
= array(1,2);
foreach( 
$var as $v ){
?>
<input type="text" name="tuControl_<?php echo $v;?>">
<?php
}
?>
Esto te generara dos text:
<input type="text" name="tuControl_1">
<input type="text" name="tuControl_2">
Pero como cuando grabes, no sabes como se llaman, tenes dos opciones, o haces el inverso, o levantas todo el post de una, lo cual no recomiendo. El inverso, en el grabar seria:
Código PHP:
<?php
$var 
= array(1,2);
foreach( 
$var as $v ){
  
$tuValorPost = isset( $_POST["tuControl_".$v] ) ? $_POST["tuControl_".$v] : 'sin valor';
echo 
"El campo tuControl_"$v " tiene el siguiente valor: " $tuValorPost "<hr>";
}
?>
Espero que se haya entendido lo que trate de explicarte.
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #4 (permalink)  
Antiguo 02/08/2005, 02:24
 
Fecha de Ingreso: mayo-2005
Mensajes: 510
Antigüedad: 19 años, 6 meses
Puntos: 1
OK!!!! :D Ya ha salido lo q necesitaba, muchas gracias a los 2, estaba un poco saturada y ya no conseguia q me saliera nada... GRACIAS
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 21:39.