Foros del Web » Programando para Internet » PHP »

Capturar el ID de un List/menu

Estas en el tema de Capturar el ID de un List/menu en el foro de PHP en Foros del Web. Buenas tardes a todos: Tengo un formulario con method="post" action="" (se autoejecuta el mismo), con un List/menu tipo menu, dos Input text, un campo oculto ...
  #1 (permalink)  
Antiguo 27/08/2008, 15:05
 
Fecha de Ingreso: agosto-2008
Mensajes: 46
Antigüedad: 15 años, 8 meses
Puntos: 0
Capturar el ID de un List/menu

Buenas tardes a todos:

Tengo un formulario con method="post" action="" (se autoejecuta el mismo), con un List/menu tipo menu, dos Input text, un campo oculto y un boton.

- El List/menu tipo menu esta cargado desde una tabla "vehiculo" (no hay problema).

- Los dos Input text capturan dos fechas desde un objeto calendario y pasa sus valores a una función que resta las fechas y me devuelve los dias resultantes. (no hay problema).

- El campo oculto es para capturar el ID del List/menu tipo menu, que lo necesito para pasarlo como argumento a otra función para hacer una busqueda en otra tabla. (aqui está el problema).

-------------------------------------------------------------------------------------------------------

- El código que carga dinámicamente del List/menu tipo menu es este:


mysql_select_db($database_miConexion, $miConexion);
$query_vehiculo = "SELECT vehiculo_id, vehiculo_nombre FROM vehiculo ORDER BY vehiculo_id ASC";
$vehiculo = mysql_query($query_vehiculo, $miConexion) or die(mysql_error());
$row_vehiculo = mysql_fetch_assoc($vehiculo);
$totalRows_vehiculo = mysql_num_rows($vehiculo);


-------------------------------------------------------------------------------------------------------

Yo necesito que el List/menu me muestre en la etiqueta el valor "vehiculo_nombre" para que el usuario pueda leer el modelo del vehiculo que desea y luego se lo muestro en pantalla. (aqui no hay problema).

Para ello, desde Dreamweaver, al seleccionar el List/menu y dar click en el botón "Dinámico..." le he indicado que:


Opciones del juego de registro: vehiculo
Valores: vehiculo_nombre
Etiquetas: vehiculo_nombre


De esta manera, me muestra en pantalla el nombre del modelo del vehiculo; sino lo hago asi, me muestra el ID del vehiculo y no quiero eso, porque al usuario no le sirve de nada ver en pantalla un numero.

- Pero, internamente necesito obtener el valor del campo "vehiculo_id" del campo "vehiculo_nombre" que el usuario ha seleccionado del List/menu y asignarlo a una variable que pasaré como parámetro a una función para hacer una búsqueda en otra tabla que también tiene la columna "vehiculo_id".

Por eso es que tengo un campo oculto, porque he pensado que puedo pasarlo ahi dinamicamente, pero no se como hacerlo. Quizas me equivoque al querer hacer esto, si es asi, les agradeceria me orientaran al respecto

-------------------------------------------------------------------------------------------------------

-Así es como capturo los valores del formulario


// Capturamos los valores intoducidos:
$vehiculo_nombre = $_POST['vehiculo_nombre']; //(esta correcto)
$vehiculo_id = $row_vehiculo['vehiculo_id']; //(“No se si esta correcto”)
$fecha1 = $_POST['fecha1']; //(esta correcto)
$fecha2 = $_POST['fecha2']; //(esta correcto)


-Y en el campo oculto le he dicho que:

<input name="vehiculo_id" type="hidden" id="vehiculo_id" value="<?php echo $row_vehiculo['vehiculo_id']; ?>"/>

- Pero siempre me muestra en ID de vehículo: 1

Aunque cambie el modelo en el List/menu, el ID siempre es el mismo

-------------------------------------------------------------------------------------------------------

- El Select me muestra los nombres de los vehiculos y le he ordenado que me devuelva el nombre del vehiculo:


<select name="vehiculo_nombre" id="vehiculo_nombre">
<?php
do {
?>
<option value="<?php echo $row_vehiculo['vehiculo_nombre']?>">
<?php echo $row_vehiculo['vehiculo_nombre']?>
</option>
<?php
} while ($row_vehiculo = mysql_fetch_assoc($vehiculo));
$rows = mysql_num_rows($vehiculo);
if($rows > 0) {
mysql_data_seek($vehiculo, 0);
$row_vehiculo = mysql_fetch_assoc($vehiculo);
}
?>
</select>


-------------------------------------------------------------------------------------------------------

Este es un ejemplo de lo que le muestroaal usuario despues de haber realizado dos selecciones en el List/menu:


Modelo de vehículo: Mazda 3 Estandar
ID de vehículo: 1
Fecha de retiro: 27/08/2008
Fecha de retorno: 31/08/2008
Dias a rentar: 4 días
ID de tarifa: 1
Tipo de tarifa: Diaria



Modelo de vehículo: Toyota Yaris Estandar
ID de vehículo: 1
Fecha de retiro: 27/08/2008
Fecha de retorno: 31/08/2008
Dias a rentar: 4 días
ID de tarifa: 1
Tipo de tarifa: Diaria

-------------------------------------------------------------------------------------------------------

Como ven, ID de vehículo: siempre me muestra 1, ese es mi problema, que no cambia, ahi lo he puesto para ver si lo captura, pero siempre me muestra el mismo valor... :(

PREGUNTAS:

¿Cómo hago para capturar el campo "vehiculo_id" del List/menu si este tiene en el option value el "vehiculo_nombre" porque solo asi me muestra el nombre del vehiculo?

¿Cual es forma adecuada de hacer esto?

¿Tienen algun ejemplo con código que pueda ocupar?

Gracias de antemano por vuestra ayuda...
  #2 (permalink)  
Antiguo 27/08/2008, 15:16
Avatar de hector2c  
Fecha de Ingreso: noviembre-2007
Ubicación: Perú - Tacna
Mensajes: 979
Antigüedad: 16 años, 4 meses
Puntos: 25
Pregunta Respuesta: Capturar el ID de un List/menu

estas mal amigo, en el campo value del option debes almacenar el id del vehiculo. y luego la puedes recuperar sin problemas...

Código PHP:
<html>
  <body>
  <?php
    
if (isset($_POST['enviar'])){
      echo 
"selecciono: ".$_POST['ide_aut'];
    }
  
?>
  <form id="frm_aut" name="frm_aut" method="post" action="<?=$PHP_SELF?>">
    <select name="ide_aut" id="ide_aut">
      <option value="1">auto uno</option>
      <option value="2">auto dos</option>
      <option value="3">auto tres</option>
      <option value="4">auto cuatro</option>
    </select>
    <input name="enviar" type="submit" id="enviar">
  </form>
  </body>
</html>
  #3 (permalink)  
Antiguo 27/08/2008, 15:18
Avatar de hector2c  
Fecha de Ingreso: noviembre-2007
Ubicación: Perú - Tacna
Mensajes: 979
Antigüedad: 16 años, 4 meses
Puntos: 25
Respuesta: Capturar el ID de un List/menu

tal vez, este dando mal la respuesta, podrias ser mas espécifico en tu problema, para poder ayudarte...
  #4 (permalink)  
Antiguo 27/08/2008, 15:39
 
Fecha de Ingreso: agosto-2008
Mensajes: 46
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Capturar el ID de un List/menu

Bueno, para ser mas especifico:

¿Como capturo el ID del elemento que selecciono de un List/menu que muestra los valores de una tabla?
  #5 (permalink)  
Antiguo 27/08/2008, 15:47
Avatar de hector2c  
Fecha de Ingreso: noviembre-2007
Ubicación: Perú - Tacna
Mensajes: 979
Antigüedad: 16 años, 4 meses
Puntos: 25
Respuesta: Capturar el ID de un List/menu

pues, te acabo de enviar un ejemplo al respecto...
  #6 (permalink)  
Antiguo 27/08/2008, 15:56
 
Fecha de Ingreso: agosto-2008
Mensajes: 46
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Capturar el ID de un List/menu

Es que la cosa no es tan sencilla, amigo, porque es un List/menu "dinámico" y tu me estas poniendo una estatico.

Ademas, es necesario que en el value tenga el nombre, no el ID, ya que si pongo el ID en el value, eso es lo quie mostrara y al usuario no le sirve de nada ver un numero en pantalla, puesto que lo que quiere es ver un nombre.

Pero yo, internamente si necesito capturar el ID de la opcion seleccionada por el usuario, ¿pero no se como?
  #7 (permalink)  
Antiguo 27/08/2008, 16:02
Avatar de hector2c  
Fecha de Ingreso: noviembre-2007
Ubicación: Perú - Tacna
Mensajes: 979
Antigüedad: 16 años, 4 meses
Puntos: 25
Respuesta: Capturar el ID de un List/menu

ejecuta el código que te he enviado:

1. se visualiza el nombre del vehiculo, pero en valor tiene su id.
2. puedes hacerlo dinámico, con una consulta, y generar todos los options a tu antojo.
3. capturas el id con la variable $nueva variable = $_POST['ide_aut']

¿cual de estos 3 puntos no entiendes?, para poder ayudarte....
  #8 (permalink)  
Antiguo 27/08/2008, 16:14
 
Fecha de Ingreso: agosto-2008
Mensajes: 46
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Capturar el ID de un List/menu

Ya probe tu codigo: esta excelente, pero hay un detalle...

Te lo explico para veas:

Con tu mismo formulario, al usuario le deberia de mostrar en pantalla esto:

Nombre del auto: auto dos
selecciono: 2


Vaya, eso es lo que quiero hacer
  #9 (permalink)  
Antiguo 27/08/2008, 16:42
Avatar de hector2c  
Fecha de Ingreso: noviembre-2007
Ubicación: Perú - Tacna
Mensajes: 979
Antigüedad: 16 años, 4 meses
Puntos: 25
Pregunta Respuesta: Capturar el ID de un List/menu

a shaaap, pues, si tienes el id del vehiculo, puedes hacer una consulta para poder sacar tooodos los datos de ese registro, color, precio, estado, etc, etc, etc...

Código PHP:
<html> 
  <body> 
  <?php 
    
if (isset($_POST['enviar'])){ 
      include 
"conexion.php";
      
$ide_aut $_POST['ide_aut'];
      
$sql "select color, precio, tamaño from auto where ide_aut=".$ide_aut;
      
$aut mysql_query($sql);
      
$rs_aut mysql_fetch_assoc($aut)
      echo 
$rs_aut['color'];
      echo 
$rs_aut['precio'];
      echo 
$rs_aut['tamaño'];
    } 
  
?> 
  <form id="frm_aut" name="frm_aut" method="post" action="<?=$PHP_SELF?>"> 
    <select name="ide_aut" id="ide_aut"> 
      <option value="1">auto uno</option> 
      <option value="2">auto dos</option> 
      <option value="3">auto tres</option> 
      <option value="4">auto cuatro</option> 
    </select> 
    <input name="enviar" type="submit" id="enviar"> 
  </form> 
  </body> 
</html>
  #10 (permalink)  
Antiguo 27/08/2008, 17:04
 
Fecha de Ingreso: agosto-2008
Mensajes: 46
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Capturar el ID de un List/menu

Gracias amigo, lo probare...
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 10:24.