Foros del Web » Programando para Internet » PHP »

menu desplegable

Estas en el tema de menu desplegable en el foro de PHP en Foros del Web. Hola, Tengo un menu desplegable en un formulario. Al mostrar la variable me sale el elemento value Hay alguna manera de que me muestre el ...
  #1 (permalink)  
Antiguo 12/12/2006, 07:51
 
Fecha de Ingreso: abril-2004
Mensajes: 58
Antigüedad: 20 años
Puntos: 0
menu desplegable

Hola,
Tengo un menu desplegable en un formulario.
Al mostrar la variable me sale el elemento value
Hay alguna manera de que me muestre el contenido (o descripción) sin tener que hacer llamada a la base de datos?

Gracias y saludos
  #2 (permalink)  
Antiguo 12/12/2006, 10:09
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 1 mes
Puntos: 33
De acuerdo Re: menu desplegable

Pues a menos de que cargues toda la información en variables de javascript, lo cual podria ser un tanto "ineficaz" puesto como tu menu puede tener "n" elementos y por lo tanto "n" número de variables. Lo que podrias hacer es utilizar AJAX y de esta ya no tendrias que recargar la pagina para obtener la información de dicho "elemento". Te recomiendo que te dirijas al foro de AJAX ahi te sabran orientar mucho mejor.

Saludillos.
  #3 (permalink)  
Antiguo 12/12/2006, 10:21
 
Fecha de Ingreso: abril-2004
Mensajes: 58
Antigüedad: 20 años
Puntos: 0
Pregunta Re: menu desplegable

Bueno, al final creo que es mejor hacer una llamada a la base de datos

Tengo este código que no me funciona

Código PHP:
$link=mysql_connect("localhost""user""01234") or die ("no m'he pogut conectar"); // me conecto a la base de dades
    
$llistat_titols=$_POST['text_titol'];  // recullo la variable del titol
    
$llistat_tipo=$_POST['var_tipologia'];
    
$llistat_pob=$_POST['var_poblacio']; // recullo la variable del poblacio
    
$bd=mysql_select_db("molinar",$link) or die ("no puc conectar a la BBDD"); // selecciono la base de dades de treball
    
$query="SELECT tipologia.nom_tipologia, poblacio.nom_poblacio FROM tipologia, poblacio WHERE id_tipologia='$llistat_tipo' AND id_poblacio='$llistat_pob'";
    
$result mysql_query($query$link) or die ("Error en: $query. " mysql_error());
    while(
$row mysql_fetch_array($result)) {
    
printf ($row['nom_tipologia'], $row['nom_poblacio']) ;
    }
    
       
?> 
Creo que el problema está en $row, ya que le pido me muestre resultados de diferentes tablas. Desde luego el query funciona, ya que lo he probado en MyPhpAdmin.

Alguna pista?

Saludos y gracias
  #4 (permalink)  
Antiguo 12/12/2006, 10:36
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 1 mes
Puntos: 33
De acuerdo Re: menu desplegable

Si en esta linea no esta arrojando ningun error:
Código PHP:
$result mysql_query($query$link) or die ("Error en: $query. " mysql_error()); 
Verifica que los nombres a los que estas haciendo referencia sean iguales a los campos de la B.D.

Saludillos.
  #5 (permalink)  
Antiguo 12/12/2006, 10:39
Avatar de Erikfrancisco  
Fecha de Ingreso: noviembre-2003
Ubicación: Estado de México
Mensajes: 503
Antigüedad: 20 años, 5 meses
Puntos: 4
Re: menu desplegable

Me imagino que el error esta en que no le pasas el nombre del campo completo al array $row, tu haces esto:
Código PHP:
$row['tipologia.nom_tipologia'], $row['nom_poblacio'
cuando en realidad debería de ser:
Código PHP:
$row['tipologia.nom_tipologia'], $row['poblacio.nom_poblacio'
ya que así lo declaras en tu consulta:
Código PHP:
$query "SELECT tipologia.nom_tipologia, poblacio.nom_poblacio... 
Otro detalle es que deberías de validar que los campos que enviaste mediante el metodo POST no sean vacios, esto lo haces a travez de la función empty(). Para saber más sobre esta función checa este enlace:
http://www.php.net/manual/es/function.empty.php
Además también deberías comprobar si la consulta te devolvío algun resultado y esto lo haces con la función mysql_num_rows():
http://www.php.net/manual/es/functio...l-num-rows.php
Prueba con esto:
Código PHP:
<?php
$llistat_titols 
$_POST['text_titol'];  // recullo la variable del titol
$llistat_tipo $_POST['var_tipologia'];
$llistat_pob $_POST['var_poblacio']; // recullo la variable del poblacio

$link mysql_connect "localhost""user""01234") or die ( "no m'he pogut conectar" ); // me conecto a la base de dades
$bd mysql_select_db "molinar"$link ) or die ( "no puc conectar a la BBDD" ); // selecciono la base de dades de treball

$query "SELECT tipologia.nom_tipologia, poblacio.nom_poblacio FROM tipologia, poblacio WHERE id_tipologia='".$llistat_tipo."' AND id_poblacio='".$llistat_pob."'";
$result mysql_query$query$link ) or die ( "Error en: $query. " mysql_error() ); 
$num_res mysql_num_rows$result );

if ( !
$num_res )
{
   echo 
"No se obtuvieron resultados.";
   exit;
}
else
{
   while ( 
$row mysql_fetch_array$result ) )
   { 
      echo 
"Tipologia: ".$row['tipologia.nom_tipologia']." Población: ".$row['poblacio.nom_poblacio']."<br/>";
   }
}

mysql_free_result$result ); // liberamos memoria
?>
Espero que sea lo que necesitabas o por lo menos te de una idea. Suerte
P.D. Recuerda lo que te mencione hacerca de validar que los campos no sean vacíos ya que yo no lo hice.
  #6 (permalink)  
Antiguo 12/12/2006, 10:43
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 19 años, 3 meses
Puntos: 10
Re: menu desplegable

hola!
has comprobado q las variables post te llegan todas?
si es asi, prueba el mysql_num_rows y asi sabras si la consulta te devuelve algun resultado.

Código PHP:
$result mysql_query($query$link) or die ("Error en: $query. " mysql_error());
//numero de registres de la consulta
$nreg=mysql_num_rows($result);
echo 
$nreg

EDITADO--> se han adelantado... xo pra el caso es lo mismo!

saludos
__________________
"Cada hombre es el hijo de su propio trabajo"
Miguel de Cervantes Saavedra
"La experiencia es algo que no consigues hasta justo depués de necesitarla"
Laurence Olivier
  #7 (permalink)  
Antiguo 12/12/2006, 12:41
 
Fecha de Ingreso: abril-2004
Mensajes: 58
Antigüedad: 20 años
Puntos: 0
Pregunta Re: menu desplegable

Bueno, quizás no me he explicado bien.
Ahora lo que estoy haciendo es crear una búsqueda para poder mostrar las variables que me han entrado desde el formulario. Pero me las entrado a través del value de la opción correspondiente y tengo que traducirlo por el nombre asociado a ese value. Porque el resultado de:
"La busqueda se ha realizado por "nombre", 2 y 22" ya lo he conseguido. Pero queria traducir esos números por la columna nombre que tienen asociada.

Que no dejen los campos en blanco lo compruebo con Javascript.

He comprobado que me llegan todas las variables.

He puesto lo que comentaba Erikfrancisco
Código PHP:
$row['tipologia.nom_tipologia'], $row['poblacio.nom_poblacio'
y tampoco ha funcionado

Así que si alguien puede mejorar este código para que funcione, se lo agadeceria

Código PHP:
$llistat_titols=$_POST['text_titol'];  // recullo la variable del titol
    
$llistat_tipo=$_POST['var_tipologia'];
    
$llistat_pob=$_POST['var_poblacio']; // recullo la variable del poblacio
    
$bd=mysql_select_db("molinar",$link) or die ("no puc conectar a la BBDD"); // selecciono la base de dades de treball
    
$query="SELECT tipologia.nom_tipologia, poblacio.nom_poblacio FROM tipologia, poblacio WHERE id_tipologia='$llistat_tipo' AND id_poblacio='$llistat_pob'";
    
$result mysql_query($query$link) or die ("Error en: $query. " mysql_error());
    while ( 
$row mysql_fetch_array$result ) )
   { 
      
printf ("La búsqueda se ha realizado para Título: " .$llistat_titols"Tipologia: " $row['tipologia.nom_tipologia'" Población: " $row['poblacio.nom_poblacio']"<br/>");
   }

?> 
Gracias anticipadas
  #8 (permalink)  
Antiguo 12/12/2006, 13:26
Avatar de Erikfrancisco  
Fecha de Ingreso: noviembre-2003
Ubicación: Estado de México
Mensajes: 503
Antigüedad: 20 años, 5 meses
Puntos: 4
Re: menu desplegable

¿Y acaso hechaste a andar el código que te pase?, porque no veo que tu consulta la estes haciendo como yo te hice el SELECT. Pruebalo y luego me cuentas. Suerte

AHH, y otra cosa, no vasta con que valides del lado del cliente ( javascript ), también por cuestiones de seguridad deberías de validar del lado del servidor ( PHP ).
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 18:29.