Foros del Web » Programando para Internet » PHP »

mas dificil todavía?????

Estas en el tema de mas dificil todavía????? en el foro de PHP en Foros del Web. Hola a todos, yo siguo con el programita dichoso que espero pronto acabar. Os cuento el problema mas dicifil. Necesitaría una forma de mostrar todos ...
  #1 (permalink)  
Antiguo 06/10/2003, 10:49
 
Fecha de Ingreso: agosto-2003
Mensajes: 55
Antigüedad: 20 años, 8 meses
Puntos: 0
mas dificil todavía?????

Hola a todos, yo siguo con el programita dichoso que espero pronto acabar.


Os cuento el problema mas dicifil.

Necesitaría una forma de mostrar todos los campos de una base de dato y permitir una multiple selección a traves de checkbox.

Pero lo he intentado y claro el primer problema es que es que los checkbox tienen nombres distintos por lo tanto generan variables distintas y no se luego como meter solo los resultados activos en un array para luego pasarlo otra web para hacer un select sobre una base de datos con esos datos, aunque eso será otra parte.

Creeis que es buena opción esa?, se puede hacer? yo lo he intentado y no me sale nada?

Podéis ayudarme??

muchas gracias
  #2 (permalink)  
Antiguo 06/10/2003, 13:03
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,
Cita:
el primer problema es que es que los checkbox tienen nombres distintos
¿Es esto obligatorio o porque te ha salido asi el diseño? Es que normalmente esos checks de seleccion de grupos se puede hacer que tengan el mismo nombre (por ejemplo 'id[]') para que ya sean accesibles via un arary. Por ejemplo:

<input type="checkbox" name="id[]" value="1">
<input type="checkbox" name="id[]" value="2">
<input type="checkbox" name="id[]" value="3">

Código PHP:
$ids=$_POST['id'];
foreach (
$ids as $valor) {
  echo 
$valor.'<br>';

Asi de facil.

Y aunque por obligacion sean de distinto nombre, tendran un patron o por lo menos sabras como se llaman.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 06/10/2003, 13:12
 
Fecha de Ingreso: agosto-2003
Mensajes: 55
Antigüedad: 20 años, 8 meses
Puntos: 0
estupendo, una gran idea, que desconocía.

Pero vamos a ver unas dudas
?

lo del distinto nombre es porque pensaba que tenía que ser así.

Pero si lo guardo en un array, en este solo se guardaran las casillas que esten marcadas no, ej:

casilla 1, marcada vale 2
casilla 2, sin marcar vale 3
casilla 3, marcada vale 4
casilla 4, marcada vale 6

entonces el array que valdra?? imagino que 2, 4,6, no??


Y otra duda, como puedo guardar ese array en un campo de mysql, que tipo de dato lo admite??

Gracias Josemi,
__________________
www.lemetofuego.com, y te lo vas a perder??? :borracho:
  #4 (permalink)  
Antiguo 06/10/2003, 17:20
 
Fecha de Ingreso: octubre-2003
Mensajes: 139
Antigüedad: 20 años, 6 meses
Puntos: 0
hola, yo creo que hice una cosa parecida. yo queria que me saliera una tabla con todos los usuarios que tengo registrados (junto a su correo y su contraseña) y con una casilla para poder eliminarlos, de manera que tenia un numero no determinado de casillas y cada una con nombres distintos asi que se me ocurrio esto.


esto es lo que contiene mi archivo "usuarios.php"


<LINK href="../miestilo.css" rel=stylesheet type=text/css>

<?php
require("../configuracion.php");
$Tabla_Usuarios = mysql_query("SELECT * FROM Usuarios ORDER BY Nick", $Conexion);
$Numero_Usuarios = mysql_num_rows($Tabla_Usuarios);
$FilaActual = 0;
while ($FilaActual < $Numero_Usuarios) {
$NumeroCuadro = "Eliminar".$FilaActual;
$a = $NumeroCuadro;
$Nick = mysql_result($Tabla_Usuarios, $FilaActual, "nick");
if ($$a == "on") {
$sql=" DELETE FROM Usuarios WHERE nick='".$Nick."'";
mysql_query($sql, $Conexion);
}
++$FilaActual;
}

function CrearTabla() {
require("../configuracion.php");
$Tabla_Usuarios = mysql_query("SELECT * FROM Usuarios ORDER BY Nick", $Conexion);
$Numero_Usuarios = mysql_num_rows($Tabla_Usuarios);
$FilaActual = 0;
echo "<div align='center'>";
echo "<table border =1 cellpadding=1 cellspacing=0>";
echo "</td>";
echo "<th>Nick</th>";
echo "<th>Correo</th>";
echo "<th>Categoria</th>";
echo "<th><input type=submit value=Eliminar></th>";
echo "</tr>";

while ($FilaActual < $Numero_Usuarios) {
$NumeroCuadro = "Eliminar".$FilaActual;
$Nick = mysql_result($Tabla_Usuarios, $FilaActual, "nick");
$Correo = mysql_result($Tabla_Usuarios, $FilaActual, "correo");
$Categoria = mysql_result($Tabla_Usuarios, $FilaActual, "categoria");
++$FilaActual;

echo "<tr>";
echo "<td align=center>".$Nick."</td>";
echo "<td align=center>".$Correo."</td>";
echo "<td align=center>".$Categoria."</td>";
echo "<td align=center><input type=checkbox name=".$NumeroCuadro." style='border: none'></td>";
echo "</tr>";
}
echo "</table>";
echo "</form>";
echo "</div>";
}
?>
<html>
<body>
<form method="post" action="usuarios.php" onSubmit="return confirm('¿ Deseas eliminar los usuarios elegidos ?')">'
<?php
CrearTabla();
?>
</form>
</body>
</html>


Juando con while y con el nombre de las variables pude hacerlo y esto me funciona a las mil maravillas. Cada vez que pulso el boton eliminar (seria el submit) elimina los usuarios y vuelve a la misma pagina con la tabla de usuarios actualizada. esto te podria ayudar para pensar como ponerlo en un array....



aH! y una cosa.... (llevo una semana aprendiendo php... os parece ingenioso lo que he pensao para llevar tan poco tiempo? :P )

Última edición por cards; 06/10/2003 a las 17:23
  #5 (permalink)  
Antiguo 06/10/2003, 22:39
 
Fecha de Ingreso: septiembre-2003
Mensajes: 248
Antigüedad: 20 años, 7 meses
Puntos: 2
Hola, sólo un comentario
tengo entendido que el uso de variables variables ($$var) es poco recomendado por los recursos que consume, es más aconsejado en este caso colocar el mismo nombre al checkbox y trabajarlo con listas, como lo indica Josemi, esto lo digo con las mejores intenciones y a cards FELICIDADES! en una semana y hacer un código así es un buen logro, suerte!
__________________
Jose A
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 19:38.