Foros del Web » Programando para Internet » PHP »

Mostrar resultados en un formulario

Estas en el tema de Mostrar resultados en un formulario en el foro de PHP en Foros del Web. Holas, lo que intento hacer es que en un formulario despegable me salgan los registros en ese mismo campo despegable, lo tengo asi: <? $conecta ...
  #1 (permalink)  
Antiguo 26/02/2004, 05:36
Avatar de Gryphus  
Fecha de Ingreso: febrero-2003
Ubicación: Spain
Mensajes: 216
Antigüedad: 14 años, 9 meses
Puntos: 0
Mostrar resultados en un formulario

Holas, lo que intento hacer es que en un formulario despegable me salgan los registros en ese mismo campo despegable, lo tengo asi:
<?
$conecta = mysql_connect($host,$user,$pass);
mysql_select_db($dbname,$conecta);
$query = "select * from noticias where id_noticia2='$id' order by $fecha desc";
$resp = mysql_query($query);
while ($datos = mysql_fetch_array($resp)) {
?>
<form method="post" action="<? $php_self ?>">
<select name="select" class="boton">
<option>::Noticias::</option>
<option><? echo $datos[titulo] ?></option>
</select>
<input type="submit" name="del" value="Borrar" class="boton3">
<input type="hidden" name="id23" value="<? echo $datos[id] ?>">
</form>

Pero al ponerlo asi me salen tantos formularios como registros, o sea que si tengo 30 registros me salen 30 menus despegables con un solo registro en cada uno >_<, a ver si alguien me puede hechar una mano, gracias y saludos
  #2 (permalink)  
Antiguo 26/02/2004, 05:45
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

Si te fijas en el HTML que ha generado tu codigo, veras que repite todo el HTML que esta dentro del bucle while(). Asi que la solucion es poner solo el codigo HTML que quieres repetir (el <option>) dentro del bucle while(). Y el HTML que esta delante y detras de lo que quieres repetir, ponerlo fuera del while().

Lo que no entiendo es la funcion de tu campo oculto id23. Le pones un valor de un campo del registro. Y parece que es el id de la noticia que quieres eliminar. E imagino que quieres que se mande el id del registro que has seleccionado en el combo. Pues si miras el manual de HTML, veras que en los <option> debes poner un atributo value, que es el que se pasa como valor del campo select. Asi que seria cuestion de poner el valor del campo id de la noticia en el value del option.

Saludos.

PD: PHP sirve para generar HTML. Si lo usas para generar HTML erroneo, tu pagina fallara, pero por culpa del HTML, no del PHP.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 26/02/2004, 06:06
Avatar de Gryphus  
Fecha de Ingreso: febrero-2003
Ubicación: Spain
Mensajes: 216
Antigüedad: 14 años, 9 meses
Puntos: 0
Todo el formulario es este:
<? $conecta = mysql_connect($host,$user,$pass); //conecta a la db
mysql_select_db($dbname,$conecta); //selecciona la tuya

$query = "select * from noticias where id_noticia2='$id' order by fecha desc";
$resp = mysql_query($query);

while ($datos = mysql_fetch_array($resp)) {
?>
</font><form method="post" action="<? $php_self ?>">
<input type="hidden" name="pw" value="<? echo $contrasena ?>">
&nbsp;
<input type="hidden" name="entrada" value="si">
&nbsp;
&nbsp; <select name="select" class="boton7">
<option>::Noticias::</option>
<option><? echo $datos[titulo] ?></option>
</select>
<input type="submit" name="del" value="Borrar" class="boton3">
&nbsp;
<a target="_blank" href="admin_modify.php?id2=<? $datos[id] ?>"><img src="admin_modificar.jpg" border="0"></a>
&nbsp;
<input type="hidden" name="id23" value="<? $datos[id] ?>">
&nbsp;
</form>

Te estas refiriendo a que haga dos while uno para el <option> y otro para lo demas? es que si hago eso se me repite toda la pagina X veces (segun los registros que tengo), saludos
  #4 (permalink)  
Antiguo 26/02/2004, 06:16
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
No entiendo lo que intentas hacer. ¿Un solo combo y luego tantos links como elementos del combo?

Lo mejor es que hagas directamente el HTML que quieres generar, con el combo con varios valores y con el numero de links y botones que quieras.

Y tambien que expliques la funcionalidad que deseas de tu codigo.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #5 (permalink)  
Antiguo 26/02/2004, 06:46
Avatar de Gryphus  
Fecha de Ingreso: febrero-2003
Ubicación: Spain
Mensajes: 216
Antigüedad: 14 años, 9 meses
Puntos: 0
Haber, tengo un panel para borrar y modificar noticias, y no quiero que me salga todos los titulos separados sino todos en el mismo menu despegable, pero lo que consigo con lo que pongo es que me salga 1 menu despegable para cada registro ¿me entiendes?
  #6 (permalink)  
Antiguo 26/02/2004, 06:59
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Bien, eso esta claro, pero ¿y los links y el campo oculto? ¿Uno para cada registro o solo uno en toda la pagina?

De todas formas, se puede hacer con un solo link con javascript, para añadir a la URL el id del elemento seleccionado en el combo.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #7 (permalink)  
Antiguo 26/02/2004, 07:04
Avatar de Gryphus  
Fecha de Ingreso: febrero-2003
Ubicación: Spain
Mensajes: 216
Antigüedad: 14 años, 9 meses
Puntos: 0
Es uno para cada registro, de este modo puedo elegir una noticia y pulsar borrar para eliminar la noticia seleccionada en el menu despegable, y lo mismo con el link de modificar, aunque en realidad saldria un unico link y un unico boton, ¿me entiendes?, saludos

EDIT: Hice lo que me dijiste pero me sigue pasando lo mismo @[email protected]

Última edición por Gryphus; 27/02/2004 a las 05:39
  #8 (permalink)  
Antiguo 26/02/2004, 07:06
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Entonces solo necesitas un while(), solo en del option, el resto del codigo solo lo quieres generar una vez. Pero tendrias que cambiar la forma del link y eliminar el campo hidden de id23.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
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 17:01.