Foros del Web » Programando para Internet » PHP »

Checkbox para cada comentario

Estas en el tema de Checkbox para cada comentario en el foro de PHP en Foros del Web. Hola a migos del foro, aqui molestandolos como siempre con alguna consulta, esta ves quiero consultarles lo siguiente: como siempre, tengo un website donde los ...
  #1 (permalink)  
Antiguo 17/03/2010, 12:49
 
Fecha de Ingreso: septiembre-2009
Mensajes: 402
Antigüedad: 14 años, 7 meses
Puntos: 6
Checkbox para cada comentario

Hola a migos del foro, aqui molestandolos como siempre con alguna consulta,
esta ves quiero consultarles lo siguiente:
como siempre, tengo un website donde los usuarios ingresan comentarios, los cuales son ingresados en una db, y luego extraidos mediante un loop for, de la siguiente forma:

$consulta= "select * from general";
$resultado= mysql_query($consulta);
$num= mysql_num_rows($resultado);

echo "<form id=form1 name=form1 method=post action=>";
for ($i=0;$i<$num;$i++)
{
$row= mysql_fetch_array($resultado;
echo ($row['comentario']);
}
echo "<input type=submit name=Submit value=Submit />";
echo "</form>";
Ok, hasta ahi todo bien, pero lo que quiero es que aparezca un checkbox al lado de cada comentario, de modo que si el usuario desea eliminar uno o mas comentarios, simplemente con seleccionar el o los checkbox y clickear en el boton del formulario, se eliminen los comentarios que selecciono
Pero no no se como hacer la relacion de cada checkbox con el comentario correspondiente
Como puedo hacer?
Desde ya mil gracias
Saludos, Ariel
  #2 (permalink)  
Antiguo 17/03/2010, 12:54
Avatar de eulloa  
Fecha de Ingreso: octubre-2007
Ubicación: Donde caiga la noche, si mi hijo me deja
Mensajes: 691
Antigüedad: 16 años, 6 meses
Puntos: 5
Respuesta: Checkbox para cada comentario

Lo puedes comprobar de acuerdo al value "checked" que tira el seleccionado
Puedes mirar aquí
  #3 (permalink)  
Antiguo 17/03/2010, 12:57
Avatar de blogger  
Fecha de Ingreso: diciembre-2005
Ubicación: frente al monitor
Mensajes: 398
Antigüedad: 18 años, 4 meses
Puntos: 12
Respuesta: Checkbox para cada comentario

Me imagino que cada comentario tiene su propio numero de ID, por lo tanto lo que tienes que hacer es simplemente poner el ID como valor del checkbox, cuando el usuario presione el boton del formulario haces la consulta en base al ID seleccionado.
__________________
http://exegesis-biblica.com/
  #4 (permalink)  
Antiguo 17/03/2010, 17:22
 
Fecha de Ingreso: septiembre-2009
Mensajes: 402
Antigüedad: 14 años, 7 meses
Puntos: 6
antes que nada mil gracias por la respuesta.
sabes que habia probado algo asi, pero voy a intentar de nuevo como me decis, a ver que onda.
de paso te consulto, como se te ocurre que podria ser la consulta?
saludos y gracias
ariel
Cita:
Iniciado por blogger Ver Mensaje
Me imagino que cada comentario tiene su propio numero de ID, por lo tanto lo que tienes que hacer es simplemente poner el ID como valor del checkbox, cuando el usuario presione el boton del formulario haces la consulta en base al ID seleccionado.
muchas gracias por la respuesta tambien, voy a chequear el link que me pasaste a ver si logro hacerlo bien.
cualquier cosa te molesto con alguna otra consulta
gracias y saludos
ariel
Cita:
Iniciado por blogger Ver Mensaje
Me imagino que cada comentario tiene su propio numero de ID, por lo tanto lo que tienes que hacer es simplemente poner el ID como valor del checkbox, cuando el usuario presione el boton del formulario haces la consulta en base al ID seleccionado.
muchas gracias por la respuesta
estuve viendo el link, que me pasaste, pero no logro relacionarlo con lo que tengo que hacer, de todos modos mil gracias
ariel
Cita:
Iniciado por eulloa Ver Mensaje
Lo puedes comprobar de acuerdo al value "checked" que tira el seleccionado
Puedes mirar aquí

Última edición por GatorV; 17/03/2010 a las 17:38
  #5 (permalink)  
Antiguo 17/03/2010, 17:45
 
Fecha de Ingreso: septiembre-2009
Mensajes: 402
Antigüedad: 14 años, 7 meses
Puntos: 6
bueno, estuve probando la opcion que me dijiste, blogger, y logre que lo haga, pero hay un detalle, cuando selecciono cualquiera de las opciones que deseo que borre, y hago click en el boton, no lo borra directamente, ahora, la segunda vez que lo selecciono y hago click en el boton, si lo borra, porque puede ser?
aqui les paso el codigo a ver si me pueden dar una mano, y desde ya mil gracias de antemano:

<?php
session_start();
$_SESSION['usaurio'];
echo $_SESSION['usuario']."<br>";
$db = mysql_pconnect("host","user", "pass");
mysql_select_db("tips_general");

$consulta1= "select * from general order by id desc";
$result1= mysql_query($consulta1);
$num1= mysql_num_rows($result1);

echo "<form id=form1 name=form1 method=post action=PROBAR.php>";
for ($i=0;$i<$num1;$i++)
{
$row= mysql_fetch_array($result1);

$fila= ($row['id']);



echo ($row['comentario'])."<input type=checkbox name=checkbox value='".($row['id'])."' /><br>";
}

echo "<input type=submit name=Submit value=Submit />";
echo "</form>";

echo "------------------------------<br>";

extract($_POST);



if ($_POST['checkbox'])
{
$consulta= "delete from general where id='".$_POST['checkbox']."'";
$resultado= mysql_query($consulta);

}





?>

aclaro que tambien probe poner como value del checkbox la variable $fila, pero tiene el mismo defecto

otro detalle que observe es que si selecciono varias opciones, tampoco borra las opciones que selecciono

Última edición por GatorV; 18/03/2010 a las 14:14
  #6 (permalink)  
Antiguo 17/03/2010, 19:00
 
Fecha de Ingreso: diciembre-2009
Mensajes: 612
Antigüedad: 14 años, 5 meses
Puntos: 16
Respuesta: Checkbox para cada comentario

Yo lo haría de la siguietne manera.

Vuelve a hacer hacer una cosulta mysql al final

quita lo de checked
y dale para que valide uno a uno de esta forma

creas un while

while
{
}

le añades el parametro id del registro, que lo cuente el $busqueda puedes cargarlo desde la base de datos, o cargar el primer número y ir subiendo si van a ser consecutivos, si van a ser consecutivos, añade a $busqueda el primer número, si no, ponlo dentro de la busqueda de mysql, y llamalo $array[busqueda], para que valla actualizandose solo.

while($busqueda<$total)
{
}

le añades el parametro isset(si existe) y te debería ir bien... Si son numeros consecutivos, añade al final $busqueda ++;

Si son números que no van seguidos, donde ponga busqueda, metele el campo que te devuelva la base de datos, ejemplo $row[id]

while($busqueda<$total)
{
if (isset($_POST[$busqueda]))
{
...delete...
}
}
¿lo entendiste? :S
  #7 (permalink)  
Antiguo 17/03/2010, 19:06
 
Fecha de Ingreso: septiembre-2009
Mensajes: 402
Antigüedad: 14 años, 7 meses
Puntos: 6
Respuesta: Checkbox para cada comentario

muchas gracias por la respuesta antes que nada.
la verdad se me hizo medio confuso

Cita:
Iniciado por millan2525 Ver Mensaje
Yo lo haría de la siguietne manera.

Vuelve a hacer hacer una cosulta mysql al final

quita lo de checked
y dale para que valide uno a uno de esta forma

creas un while

while
{
}

le añades el parametro id del registro, que lo cuente el $busqueda puedes cargarlo desde la base de datos, o cargar el primer número y ir subiendo si van a ser consecutivos, si van a ser consecutivos, añade a $busqueda el primer número, si no, ponlo dentro de la busqueda de mysql, y llamalo $array[busqueda], para que valla actualizandose solo.

while($busqueda<$total)
{
}

le añades el parametro isset(si existe) y te debería ir bien... Si son numeros consecutivos, añade al final $busqueda ++;

Si son números que no van seguidos, donde ponga busqueda, metele el campo que te devuelva la base de datos, ejemplo $row[id]

while($busqueda<$total)
{
if (isset($_POST[$busqueda]))
{
...delete...
}
}
¿lo entendiste? :S
  #8 (permalink)  
Antiguo 17/03/2010, 19:19
 
Fecha de Ingreso: diciembre-2009
Mensajes: 612
Antigüedad: 14 años, 5 meses
Puntos: 16
Respuesta: Checkbox para cada comentario

Te explico, con un while puedes validar todos los campos, mirando uno por uno(todos los chexbox)

con el if(isset(....)

el isset compruebe si existe, por lo que si esta marcado, será afirmativo, y el if seguirá para adelante, si no, sera falso.

Entonces, si le pasas los datos al if, de los chexbox, dandoles su nombre($_POST[nombre])

Podrás saber si estan marcados.

en la parte de la busqueda

for ($i=0;$i<$num1;$i++)
{
$row= mysql_fetch_array($result1);

$fila= ($row['id']);



echo ($row['comentario'])."<input type=checkbox name=checkbox value='".($row['id'])."' /><br>";
}

Puedes añadirselo, para que al buscarlos los valla eliminando.

Pero hazlo antes de printearlos. Es más, quizá lo otro tendrías que darle dos veces por ponerlo dos veces.

for ($i=0;$i<$num1;$i++)
{

if(isset($_POST['$row['id']))
{
$consulta= "delete from general where id='".$_POST['checkbox']."'";
}
$resultado= mysql_query($consulta);
$row= mysql_fetch_array($result1);

$fila= ($row['id']);



echo ($row['comentario'])."<input type=checkbox name=checkbox value='".()."' /><br>";
}

Prueba eso...

Así los irás eliminando, creo :P
  #9 (permalink)  
Antiguo 17/03/2010, 19:54
 
Fecha de Ingreso: septiembre-2009
Mensajes: 402
Antigüedad: 14 años, 7 meses
Puntos: 6
Respuesta: Checkbox para cada comentario

no hay caso, la verdad ke estoy trabado con esto y no doy pie con bola, partiendo de este codigo, que aqui les paso que deberia supuestamente modificar para que supuestamente funcione, volvi a la base:

<?php
session_start();
$_SESSION['usaurio'];
echo $_SESSION['usuario']."<br>";
$db = mysql_pconnect("host","user", "pass");
mysql_select_db("base");

$consulta1= "select * from general order by id desc";
$result1= mysql_query($consulta1);
$num1= mysql_num_rows($result1);




echo "<form id=form1 name=form1 method=post action=PROBAR.php>";
for ($i=0;$i<$num1;$i++)
{
$row= mysql_fetch_array($result1);




echo ($row['comentario'])."<input type=checkbox name=checkbox value='".($row['id'])."' /><br>";


}

echo "<input type=submit name=Submit value=Submit />";
echo "</form>";

echo "------------------------------<br>";

extract($_POST);



if (isset($_POST['checkbox']))
{

$consulta= "delete from general where id='".$_POST['checkbox']."'";
$resultado= mysql_query($consulta);

}



?>
Obviamente este codigo que aqui les pase, no hace lo que necesito
  #10 (permalink)  
Antiguo 17/03/2010, 20:13
 
Fecha de Ingreso: diciembre-2009
Mensajes: 612
Antigüedad: 14 años, 5 meses
Puntos: 16
Respuesta: Checkbox para cada comentario

añade al principio

while($row= mysql_fetch_array($result1))
$id=$row[id];
if(isset($_POST[id]))
{
$id=$_POST[id]
$consulta= "delete from general where id='$id";
$resultado= mysql_query($consulta);
}



echo ($row['comentario'])."<input type=checkbox name=checkbox value='".($row['id'])."' /><br>";


}

Añadelo antes de la primera consulta

Y luego cambias el

echo ($row['comentario'])."<input type=checkbox name=checkbox value='".($row['id'])."' /><br>";

Por

echo $row['comentario']."<input type=\"checkbox\" name=\"$row[id]\"";

El isset mira el nombre, no el valor :P

Entonces antes de realizar la busqueda, eliminas. Por otro lado, si la casilla no tiene name, no sé como eliminabas :S.
luego, en echo, no hace faltan parentesis, se pone \ antes de las comillas(") de html, y creo que servirá.

Pruebalo, lo único tendrás que añadir el <br> que te quité

Espero a que lo pruebes ;)

Por último también te digo que la busqueda que te puse, la tendrás que poner antes de:

echo "<form id=form1 name=form1 method=post action=PROBAR.php>";
for ($i=0;$i<$num1;$i++)
{
$row= mysql_fetch_array($result1);




echo ($row['comentario'])."<input type=checkbox name=checkbox value='".($row['id'])."' /><br>";


}

Te quedará así:

[HIGHLIGHT="PHP"][HIGHLIGHT="PHP"]
Código PHP:
Ver original
  1. <?php
  2. $_SESSION['usaurio'];
  3. echo $_SESSION['usuario']."<br>";
  4. $db = mysql_pconnect("host","user", "pass");
  5.  
  6. $consulta1= "select * from general order by id desc";
  7. $result1= mysql_query($consulta1);
  8. $num1= mysql_num_rows($result1);
  9.  
  10.  
  11. while($row= mysql_fetch_array($result1))
  12. $id=$row[id];
  13. if(isset($_POST[id]))
  14. {
  15. $id=$_POST[id]
  16. $consulta= "delete from general where id='$id";
  17. $resultado= mysql_query($consulta);
  18. }
  19.  
  20. echo "<form id=form1 name=form1 method=post action=PROBAR.php>";
  21. for ($i=0;$i<$num1;$i++)
  22. {
  23. $row= mysql_fetch_array($result1);
  24.  
  25.  
  26.  
  27.  
  28.  
  29. echo $row['comentario']."<input type=\"checkbox\" name=\"$row[id]\"<br>";
  30.  
  31.  
  32. }
  33.  
  34. echo "<input type=submit name=Submit value=Submit />";
  35. echo "</form>";
  36.  
  37. echo "------------------------------<br>";
  38.  
  39. extract($_POST);
  40.  
  41.  
  42.  
  43. if (isset($_POST['checkbox']))
  44. {
  45.  
  46. $consulta= "delete from general where id='".$_POST['checkbox']."'";
  47. $resultado= mysql_query($consulta);
  48.  
  49. }
  50.  
  51.  
  52.  
  53. ?>

Y te añadí el <br> que faltaba(que no te había puesto)

Pruebalo, si te va, luego puedes hacer que solo ahga la búsqueda si pulsaste el boton :P :)
  #11 (permalink)  
Antiguo 17/03/2010, 20:48
 
Fecha de Ingreso: septiembre-2009
Mensajes: 402
Antigüedad: 14 años, 7 meses
Puntos: 6
Respuesta: Checkbox para cada comentario

mil gracias de nuevo sobre todo por la paciencia y la info, bueno, no logro que esto funcione, suponia que debia ser algo bastante mas sencillo, pero me doy cuenta ke no es asi
otra cosa ke se me habia ocurrido, era crear un array de este modo por ejemplo:

$x= array($_POST['checkbox'] => ($row['id']))

es mas probe haciendo eso, pero tampoco funciono
so...no se me ocurre como puedo hacerlo, veo que por ejemplo en todos los correos electronicos se manejan con checkboxes para borrar los emails, pero quien sabe como lo haran....
  #12 (permalink)  
Antiguo 17/03/2010, 20:59
 
Fecha de Ingreso: diciembre-2009
Mensajes: 612
Antigüedad: 14 años, 5 meses
Puntos: 16
Respuesta: Checkbox para cada comentario

mandame tu msn por privi si quieres y lo solucionamos yo tengo checbox en el proyecto que estoy usando, tranqui, algo se podrá hacer xD
  #13 (permalink)  
Antiguo 18/03/2010, 10:09
 
Fecha de Ingreso: septiembre-2009
Mensajes: 402
Antigüedad: 14 años, 7 meses
Puntos: 6
Respuesta: Checkbox para cada comentario

como estas, ahi te mande un mensaje a tu casilla y te pase mi dire de msn, cualquier cosa decime si te llego bien, sino te lo envio de nuevo.
gracias y saludos
ariel

Etiquetas: checkbox, comentario
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 08:18.