meer verwijderen met checkbox
Ik heb eens zitten neuzen tussen de code om een makkelijke manier te vinden om met checkboxes meerdere rows te deleten uit een database.
Wat is een makkelijke manier om meerdere records te verwijderen dmv checkboxes?
Ik heb dan zeg maar een while loop die alle records uit de databse haalt en dan achter elk resultaat een checkbox zet met het id nr als value die bij die record hoort.
Dus bij bericht id1 zit een checkbox met als value php echo $rij['id']; zodat de checkboxes dus dezelfde id krijgen als het bericht.
Maar hoe kan ik het beste het delete.php bestand in elkaar zetten om ervoor te zorgen dat hij multiple deletes aankan dmv de aangevinkte checkboxes die vervolgens ge-post worden naar delete.php via een verwijder knop?
^_^
moet werken, ik zag arjan hier laatst iets over zeggen, ik weet er zelf weinig van af maar volgens mij krijg je dan je results terug in een array wat het veel makkelijker maakt om ze eruit te halen,
en dan denk ik iets van:
Ik zal nog wel even wat gaan puzzelen.
Thx 4 your phphulp... :)
Ja idd en is nog professioneler ook :-)
Ik krijg die error alleen wel als ik geen checkbox heb aangevinkt.
Dan moet ik er iets in schrijven dat als er geen checkboxes zijn aangevinkt dat hij dan echoéd dat er niets is geselecteerd.
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<? if(!empty($_POST['delete']) && is_numeric($_POST['delete']))
{
foreach($_POST['delete'] as $id)
{
$sql = "DELETE FROM $tbl WHERE id=".$id;
}
}
?>
{
foreach($_POST['delete'] as $id)
{
$sql = "DELETE FROM $tbl WHERE id=".$id;
}
}
?>
dan checktie, staat er een waarde in(of meerdere) en is dat een getal. ook je query beetje aangepast btw
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?
if(!empty($_POST['delete']) && is_numeric($_POST['delete']))
{
foreach ($_POST['delete'] as $id)
{
$sql = "DELETE FROM $tbl WHERE id=".$id;
mysql_query($sql);
}
}
?>
if(!empty($_POST['delete']) && is_numeric($_POST['delete']))
{
foreach ($_POST['delete'] as $id)
{
$sql = "DELETE FROM $tbl WHERE id=".$id;
mysql_query($sql);
}
}
?>
Nu is de error die ik kreeg als ik niets heb aangevinkt weg, maar nu delete hij geen records meer als ik wel wat heb aangevinkt. (?) ^_^
De code is nu al volgt en hij doet het nu helemaal.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<?
if(empty($_POST['delete']) && !is_numeric($_POST['delete']))
{
echo "Geen berichten geselecteerd";
} else {
foreach ($_POST['delete'] as $id)
{
$sql = "DELETE FROM $tbl WHERE id=".$id;
mysql_query($sql);
}
}
?>
if(empty($_POST['delete']) && !is_numeric($_POST['delete']))
{
echo "Geen berichten geselecteerd";
} else {
foreach ($_POST['delete'] as $id)
{
$sql = "DELETE FROM $tbl WHERE id=".$id;
mysql_query($sql);
}
}
?>
Iedereen many thx voor jullie hulp! :)
haal numeric check es weg
:)
Thx again!
np hvefun :)
Je zou dus kunnen volstaan met:
if (isset ($_POST['delete'])) {
als er namelijk geen één checkbox is aangevinkt, wordt de array $_POST['delete'] niet aangemaakt.
Wanneer een user alleen zijn eigen records mag verwijderen, neem deze voorwaarde dan ook op in de query. Verder kun je bij het aanmaken van de pagina alle id's in een sessie zetten en bij het verwerken van het formulier controleren of de id die vanaf het formulier worden aangeleverd voorkomen in de array met id's die in de sessie staat. Daarmee spijker je de boel aardig dicht.
Succes!
Edit: typo
Gewijzigd op 09/03/2006 22:42:00 door Frank -