Foros del Web » Programando para Internet » PHP »

Problema con un combo(menu desplegable)

Estas en el tema de Problema con un combo(menu desplegable) en el foro de PHP en Foros del Web. hola chicos: antes que nada un saludo, pues bien tengo un problemilla con un combo: necesito llenar un combo con datos de una tabla, con ...
  #1 (permalink)  
Antiguo 17/07/2003, 18:10
 
Fecha de Ingreso: mayo-2003
Ubicación: Celaya
Mensajes: 32
Antigüedad: 14 años, 6 meses
Puntos: 0
Problema con un combo(menu desplegable)

hola chicos:

antes que nada un saludo, pues bien tengo un problemilla con un combo:


necesito llenar un combo con datos de una tabla, con el objeto de realizar una consulta con el valor del mismo. El combo se llena, pero al querer obtener el valor del combo (el value), nada mas nada. La verdad no se me ocurre que sea:

//***codigo para llenar el combo

$conn = &ADONewConnection('mysql');
$conn->PConnect('localhost', 'Usuario', '', 'MiBD');
$recordSet = &$conn->Execute('select id, nombre from tabla order by nombre);

if (!$recordSet)
print $conn->ErrorMsg();
else
echo '<SELECT NAME="'.$nomselect.'">';
while (!$recordSet->EOF) {
echo '<OPTION VALUE="'.$recordSet->fields[0].'"';
echo '>'.$recordSet->fields[1].'</OPTION>';
$recordSet->MoveNext();
}//del while
echo '</SELECT>';

//$recordSet->Close(); # optional
//$conn->Close(); # optional */



//codigo para recuperar el valor del combo


$valor=$_REQUEST["nomselect"];

si alguien sabe que estoy haciendo mal, les agradeceria mucho que me dijeran

gracias
  #2 (permalink)  
Antiguo 17/07/2003, 18:16
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

¿Que valor tiene la variable $nomselect, que es la que le va a dar nombre a la variable? Si es nomselect, funcionara, porque es lo que le estas pidiendo con $_REQUEST. Si no se llama asi, tienes que indicar el nombre en el $_REQUEST.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 17/07/2003, 18:16
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 15 años, 10 meses
Puntos: 5
Estinfo...

Algo me dice que tu eres un ASPero, o al menos que programas en VisualBasic...

Pues aunque tu forma de codificar es poco convencional, parece que todo está bien...

Vamos a verlo coloreado a ver si algo se ve raro...
Código PHP:
//***codigo para llenar el combo

$conn = &ADONewConnection('mysql'); 
$conn->PConnect('localhost''Usuario''''MiBD'); 
$recordSet = &$conn->Execute('select id, nombre from tabla order by nombre); 

if (!$recordSet) 
print $conn->ErrorMsg(); 
else 
echo '
<SELECT NAME="'.$nomselect.'">';
while (!$recordSet->EOF) { 
echo '
<OPTION VALUE="'.$recordSet->fields[0].'"'; 
echo '
>'.$recordSet->fields[1].'</OPTION>';
$recordSet->MoveNext(); 
}//del while
echo '
</SELECT>; 

//$recordSet->Close(); # optional
//$conn->Close(); # optional */



//codigo para recuperar el valor del combo


$valor=$_REQUEST["nomselect"]; 
__________________
Manoloweb
  #4 (permalink)  
Antiguo 17/07/2003, 18:17
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 15 años, 10 meses
Puntos: 5
Ya viste??? ahora fijate:

Código PHP:
//***codigo para llenar el combo

$conn = &ADONewConnection('mysql'); 
$conn->PConnect('localhost''Usuario''''MiBD'); 
$recordSet = &$conn->Execute('select id, nombre from tabla order by nombre'); 

if (!
$recordSet
print 
$conn->ErrorMsg(); 
else 
echo 
'<SELECT NAME="'.$nomselect.'">';
while (!
$recordSet->EOF) { 
echo 
'<OPTION VALUE="'.$recordSet->fields[0].'"'
echo 
'>'.$recordSet->fields[1].'</OPTION>';
$recordSet->MoveNext(); 
}
//del while
echo '</SELECT>'

//$recordSet->Close(); # optional
//$conn->Close(); # optional */



//codigo para recuperar el valor del combo


$valor=$_REQUEST["nomselect"]; 
__________________
Manoloweb
  #5 (permalink)  
Antiguo 17/07/2003, 18:24
 
Fecha de Ingreso: mayo-2003
Ubicación: Celaya
Mensajes: 32
Antigüedad: 14 años, 6 meses
Puntos: 0
Manoloweb:
tomare como alago lo de poco convencional?

y si programo en vb, porque de asp nada
pero como tu dices, no se ve nada raro

Josemi:

primero que nada, gracias, y si nomselect es el nombre del combo que se crea con el codigo php

Si el combo lo hago como en html, para despues recuperar el valor con el request, funciona. Pero si lo hago desde php, nada.

La verdad no se que onda
  #6 (permalink)  
Antiguo 17/07/2003, 18:34
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 15 años, 10 meses
Puntos: 5
Pero a lo que se refiere josemi es a que tu select lo nombras dinamicamente con el valor de una variable... mira:

echo '<SELECT NAME="'.$nomselect.'">';


Y cuando lo llamas, lo llamas con el nombre "nomselect" lo cual nos diría que

$nomselect="nomselect";

es eso correcto?
__________________
Manoloweb
  #7 (permalink)  
Antiguo 17/07/2003, 18:40
 
Fecha de Ingreso: mayo-2003
Ubicación: Celaya
Mensajes: 32
Antigüedad: 14 años, 6 meses
Puntos: 0
Manoloweb

entonces como le hago?
  #8 (permalink)  
Antiguo 17/07/2003, 18:56
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 15 años, 10 meses
Puntos: 5
En que momento determinas el valor de esa variable??

O si quieres dejarlo estatico, solo cambialo por:

echo '<SELECT NAME="nomselect">';

en lugar de

echo '<SELECT NAME="'.$nomselect.'">';
__________________
Manoloweb
  #9 (permalink)  
Antiguo 17/07/2003, 19:02
 
Fecha de Ingreso: mayo-2003
Ubicación: Celaya
Mensajes: 32
Antigüedad: 14 años, 6 meses
Puntos: 0
a ver si te entendi

el valor se determina cuando el usuario elige alguna opcion, y se supone que este valor es el id que le corresponde
el problema es como le estoy asignando el nombre al combo o no?

por cierto
a que te refieres con estatico?
  #10 (permalink)  
Antiguo 17/07/2003, 19:18
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 15 años, 10 meses
Puntos: 5
Efectivamente, un select (o combo) tiene un nombre que se marca en el tag <select> y un valor que depende del <option> que se haya seleccionado.

<select name="talcosa">
<option value="1">Uno</option>
<option value="2">Dos</option>
<option value="3">Tres</option>
<option value="4">Cuatro</option>
</select>

Si el usuario selecciona la opción que aparece como "Dos", tu vas a recibir el valor "2" desde tu campo "talcosa"...

$seleccion=$_POST["talcosa"];
echo $seleccion;

esto te daría como resultado "2"


-------------------------------------------------------------------------
Pero tu codigo parece hacer algo diferente...
-------------------------------------------------------------------------
$talcosa="numero";


<select name="$talcosa">
<option value="1">Uno</option>
<option value="2">Dos</option>
<option value="3">Tres</option>
<option value="4">Cuatro</option>
</select>

Con lo que, para accesar a este resultado, deberías hacerlo así:


$seleccion=$_POST["numero"];
echo $seleccion;

Te fijas en la diferencia???

El primer ejemplo le pone un nombre ESTATICO, es decir que tu lo escribes y asi se usa..

El segundo usa un nombre DINAMICO, ya que el nombre del select depende de lo que valga la variable $talcosa

Queda claro???
__________________
Manoloweb
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 22:28.