problema con Lista/Menu

11 views
Skip to first unread message

Mr. eggthos

unread,
Dec 18, 2009, 3:14:23 PM12/18/09
to PHP Argentina
como estan amigos de php Argentina,
quisiera hacerles una consulta ya que soy principiante en esto del php
y tengo un problema en esto

estoy haciendo un formulario pequeno esto es una muestra

<html>
<head>
<title>mustra del formulario</title>
</head>

<body>

<?
// como mi formulario se conecta con una base de datos

mysql_connect("localhost","root","root") ;
mysql_select_db("productos");

$sql_query=mysql_query("SELECT * FROM codigos");

//aqui identifico mi select

$lista=$_POST['lista'];
?>

<form id="form1" name="form1" method="POST">
<select name="lista" id="lista">
<!-- Ps aqui es donde conecto mi lista mysql para que me salga lo de
mi tabla -->
<? while(res=mysql_fetch_array($sql_query)){
echo '<option value="'.$res['precio'].'">'.$res['codigo'].'</option>';
}
?>
</select>

<input type="submit" name="botton" id="botton" value="Consultar" />
</label>
</form>

<hr />

<echo 'el codigo '.$lista.'<br /'>; ?> <!-- AQUI ES DONDE ESTA MI
PROBLEMA QUE NO PUEDO SACAR EL NOMBRE PUSE LA ETIQUETA DE EJEMPLO -->

<echo 'tiene un precio de '.$lista; ?><!-- SOLO EL VALOR QUE SERIA EL
PRECIO -->

</body>
</html>

que me sugieren que pueda hacer ya que solo nesecito que me capture el
nombre para senalar que codigo escojieron alguien me puede ayudar o
guiar, como les dije soy novato y e estado investigando todo iva vien
hasta ahora que me tope con estas listas dinamicas ya que solo lo
habia hecho con array pero ahora no puedo hacer que me seleccione la
etiqueta del valor.

Adrian Ramiro

unread,
Dec 19, 2009, 12:21:07 AM12/19/09
to php...@googlegroups.com
Hola Mr,
    Podrías pegar el código PHP tal cual lo tenes en tu archivo? Ese que pusiste no funciona de ninguna manera. Omití nombres de usuario y contraseñas reemplazandolos por XXXXXX ( ejemplo)

Suerte

Adrián


como estan amigos de php Argentina,
quisiera hacerles una consulta ya que soy principiante en esto del php
y tengo un problema en esto

estoy haciendo un formulario pequeno esto es una muestra

<html>
<head>
<title>mustra del formulario</title>
</head>

<body>

<?
// como mi formulario se conecta con una base de datos

mysql_connect("localhost","root","root") ;
mysql_select_db("productos");

$sql_query=mysql_query("SELECT * FROM codigos");

//aqui identifico mi select

$lista=$_POST['lista'];
?>

<form id="form1" name="form1" method="POST">
<select name="lista" id="lista">
<!-- Ps aqui es donde conecto mi lista mysql para que me salga lo de
mi tabla -->
<? while(res=mysql_fetch_array($sql_query)){
echo '<option value="'.$res['precio'].'">'.$res['codigo'].'</option>';
}
?>
</select>

<input type="submit" name="botton" id="botton" value="Consultar" />
</label>
</form>

<hr />



<echo 'el codigo '.$lista.'<br /'>; ?> <!-- AQUI ES DONDE ESTA MI
PROBLEMA QUE NO PUEDO SACAR EL NOMBRE PUSE LA ETIQUETA DE EJEMPLO -->

<echo 'tiene un precio de '.$lista; ?><!-- SOLO EL VALOR QUE SERIA EL
PRECIO -->

</body>
</html>

que me sugieren que pueda hacer ya que solo nesecito que me capture el
nombre para senalar que codigo escojieron alguien me puede ayudar o
guiar, como les dije soy novato y e estado investigando todo iva vien
hasta ahora que me tope con estas listas dinamicas ya que solo lo
habia hecho con array pero ahora no puedo hacer que me seleccione la
etiqueta del valor.

--

Has recibido este mensaje porque estás suscrito al grupo "PHP Argentina" de Grupos de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a php...@googlegroups.com.
Para anular tu suscripción a este grupo, envía un correo electrónico a php-arg+u...@googlegroups.com
Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/php-arg?hl=es.


  

Adrián Mouly

unread,
Dec 19, 2009, 6:49:59 AM12/19/09
to php...@googlegroups.com
Hola Mr.. Desde ya que aca falta codigo, la conexion, etc. Podes decir bien que error te tira? Ya que me imagino que por los errores que tiene esta parte, mas arriba seguro hay alguno mas. En este código, podes fijarte en la parte del WHILE, que te falta definir bien la variable $res y después donde pones un echo, esta mal escapada la etiqueta. Yo te recomiendo en estos casos donde tenes php+html, que abras y cierres con <?php ?> para que puedas separar mejor tu html, y que no moleste durante el procesamiento. Cualquier cosa segui preguntando. Saludos capo.

José Diaz

unread,
Dec 19, 2009, 10:54:19 AM12/19/09
to php...@googlegroups.com
Hola!

Oye copie tu codigo, eso si sirve pero es que tienes algunos errores de sintaxis, debe faltar codigo como ya se ha comentado ya que no se si es un copy+paste completo de tu pagina, pareciese que si puesto que el codigo empieza desde el <html> hasta su </html>.

En el While() indias una variable res la cual le falta el $ quedando asi $res. Debajo del <input> tienes un </label> que esta huerfano sin su <label for="talcosa">escrito, esto no da ningun error pero si no hace nada quitalo o pon lo que falta, los echo no estan dentro de <?php echo ?> y los tienes asi <echo, el '<br /'>; debe quedar asi <'br />'; sobre la variable $lista asi como esta, esta obtiene como dato el value del <option> y solo y unicamente ese dato, por lo que es normal que cuando indicas que muestre el codigo y precio, sean el mismo dato, tienes que hacer otra vez la SQL mas abajo pero filtrada por $lista y otra bucle que recorra la tabla, asi si buscara y conseguira el registro y los datos los muestras con ese $res, no con $lista, asi:
echo 'el codigo '.$res['codigo].'<br />';
echo 'tiene un precio de '.$res['precio'];

Si corriges la sintaxis veras que si te servira, un saludo.

jdwc

unread,
Dec 19, 2009, 10:29:03 PM12/19/09
to php...@googlegroups.com
gracias amigos por ayudarme el codigo que puse fue un ejemplo, este es el que yo estoy utilizando
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Documento sin título</title>
</head>

<body>
<?
mysql_connect("localhost","root","root");
mysql_select_db("usuarios");

$sql_query=mysql_query("SELECT * FROM registrados");
$este= mysql_fetch_assoc($sql_query);
?>
<?
$user= 'tito';

$pass= '100';

$array= array( $pass => $user);
?>

<?
$lista_l=$_POST['lista'];
?>

<?

?>

<div id="log_box">

  <form ACTION="" id="form1" name="form1" method="POST">
    <table width="400">
    <tr>
      <td>qUsuario</td>
      <td><select name="lista" id="lista">
      <option>no seleccionado</option>
     <? while($res=mysql_fetch_array($sql_query)){
echo '<option value="'.$res['pass'].'">'.$res['user'].'</option>';
}
?>
</select></td>
    </tr>
    <tr>
      <td>tu password es</td>
      <td><? echo ''.$lista_l;  ?></td>
    </tr>
    <tr>
      <td colspan="2"><label>
        <input type="submit" name="button" id="button" value="Enviar" />
      </label></td>
      </tr>
    <tr>
      <td colspan="2">
      <? echo 'es '.$array["$lista_l"]; ?>
      <? echo 'es'.$res; ?>
      </td>
    </tr>
  </table>
  </form>
  <hr />
</div>

</body>
</html>
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
lo que quiero es que en la parte de la lista/menu osea <Select> , cuando selecciono cada <option> tiene dos identificadores el (value) y el que se mira como etiqueta, el que queda en medio <option value="valor">este</option> yo quiero asi como se mira en el final que me describa que selecciono y su valor, que puedo hacer en eso ya que no logro que me muestre eso

se los agradesco mucho esto me esta atormentando.

José Diaz

unread,
Dec 20, 2009, 8:34:03 AM12/20/09
to php...@googlegroups.com
hola!

bueno, no se que papel de mostrar cumplen los dos 'es' al final pero todo lo anterior esta bien, se selecciona un usuario de la lista y en 'tu password' si mostraria el dato asociado a esa seleccion. Lo que si veo es que mysql_fetch_assoc te mueve el cursor interno de la BD, por lo que si por ejemplo tienes 4 registros, la lista solo te mostrara todos menos el primer registro porque despues de cargar los datos de la sql en mysql_query, seguido mysql_fetch_assoc mueve el cursor, si lo pones en comentario si mostrara todos los select * from de la tabla en la lista, perdon que no opine mas pero es temprano y domingo y aun ando algo dormido :)

Christian Mazur

unread,
Dec 20, 2009, 10:47:08 PM12/20/09
to php...@googlegroups.com
hola, probá esto porque yo no lo he hecho. Simplemente emplolije un poco el
codigo, a mi criterio, (no significa que este bien ;)

Para lo que intentas hacer, necesitarías usar Ajax, o algún javascript que te
recargue la info que seleccionas en el select del form, sin recargar la page.

slds.


<body>
<?php


mysql_connect("localhost","root","root");
mysql_select_db("usuarios");

$sql_query = mysql_query("SELECT * FROM registrados");
//$este = mysql_fetch_assoc($sql_query);

$user = 'tito';
$pass = '100';

$array = array( $pass => $user);
$lista_l= $_POST['lista'];
?>

<div id="log_box">
<form ACTION="" id="form1" name="form1" method="POST">
<table width="400">
<tr>
<td>qUsuario</td>
<td>
<select name="lista" id="lista">
<option>no seleccionado</option>

<?php


while($res=mysql_fetch_array($sql_query)){
echo "<option value='".$res['pass']."'>".$res['user']."</option>";
}
?>
</select>
</td>
</tr>
<tr>
<td>tu password es</td>

<td><?php echo "".$lista_l; ?></td>


</tr>
<tr>
<td colspan="2"><label>
<input type="submit" name="button" id="button" value="Enviar" />
</label></td>
</tr>
<tr>
<td colspan="2">

<?php
// QUE QUERES MOSTRAR EN ESTAS DOS LINEAS???
echo "es ".$array[$lista_l];


echo "es".$res;
?>
</td>
</tr>
</table>
</form>
<hr />
</div>
</body>

Reply all
Reply to author
Forward
0 new messages