Probleem met checkboxen verwijderen
Voor een project op school is het de bedoeling dat je enkele en meerdere checkboxen kunt selecteren en verwijderen. Het probleem is dat het mij niet lukt!, heb al heel wat tutorials afgezocht op internet.
Hier mijn code:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<?php
$result = mysql_query("SELECT * from evenement") or die(mysql_error());
$count=mysql_num_rows($result);
?>
<table class="eventlijst">
<form method ="POST" ACTION="">
<tr>
<td>Naam</td><td><input type="text" size="8" name="naam"></td>
<td>Datum</td><td><input type="text" size="5" name="van"></td>
<td>tot</td><td><input type="text" size="5" name="tot"></td>
<td>Vereniging</td><td><select name="vereniging"><option value="%" selected></option><option value="1">De Blauwe Schuit</option><option value="2">De Deurdrievers</option><option value="3">De Deurzetters</option><option value="4">De Duumkes</option><option value="5">De Duvelse Dertien</option></select></td>
<td>Categorie</td><td><select name="categorie"><option value="%" selected></option><option value="1">Bierfeest</option><option value="2">Muziekfeest</option><option value="3">Themafeest</option></select></td>
<td> </td><td><input type="submit" name="Zoek" value="Zoek"></td> </form>
</table>
<br />
<form method="POST"<INPUT TYPE="submit" name="toevoegen" VALUE="toevoegen"> </form>
<form method="POST"> <input name="delete" type="submit" value="Delete"> <br /><br />
<table>
<tr class="thead">
<td width="10" class="thead"> </td><td width="75" class="thead">Naam</td><td width="125" class="thead">Begindatum</td><td width="125" class="thead">Einddatum</td><td width="100" class="thead">Vereniging</td><td width="100" class="thead">Categorie</td><td width="100" class="thead">Aanmelden?</td>
</table>
<?php
while($rows=mysql_fetch_array($result)){
?>
<table>
<tr>
<td width="15"><input name="checkbox[]" type="checkbox" id="checkbox[]" value="<? echo $rows['evenementid']; ?>"></td>
<td width="85"><? echo $rows['naam']; ?></td>
<td width="130"><? echo $rows['begindatum']; ?></td>
<td width="175"><? echo $rows['einddatum']; ?></td>
<td width="100"><? echo $rows['categorieid']; ?></td>
<td width="100"><? echo $rows['organiserendeVerenigingid']; ?></td>
<td width="100"><? echo $rows['isAanmeldingVerplicht']; ?></td>
</tr>
</table>
</form>
<?php
}
?>
<?php
if(empty($_POST['delete']) || !is_numeric($_POST['delete']))
{
echo "Geen berichten geselecteerd";
} else {
foreach ($_POST['checkbox'] as $id)
{
mysql_query("DELETE FROM evenement WHERE evenementid='".$id."'") or die(mysql_error());
}
}
?>
$result = mysql_query("SELECT * from evenement") or die(mysql_error());
$count=mysql_num_rows($result);
?>
<table class="eventlijst">
<form method ="POST" ACTION="">
<tr>
<td>Naam</td><td><input type="text" size="8" name="naam"></td>
<td>Datum</td><td><input type="text" size="5" name="van"></td>
<td>tot</td><td><input type="text" size="5" name="tot"></td>
<td>Vereniging</td><td><select name="vereniging"><option value="%" selected></option><option value="1">De Blauwe Schuit</option><option value="2">De Deurdrievers</option><option value="3">De Deurzetters</option><option value="4">De Duumkes</option><option value="5">De Duvelse Dertien</option></select></td>
<td>Categorie</td><td><select name="categorie"><option value="%" selected></option><option value="1">Bierfeest</option><option value="2">Muziekfeest</option><option value="3">Themafeest</option></select></td>
<td> </td><td><input type="submit" name="Zoek" value="Zoek"></td> </form>
</table>
<br />
<form method="POST"<INPUT TYPE="submit" name="toevoegen" VALUE="toevoegen"> </form>
<form method="POST"> <input name="delete" type="submit" value="Delete"> <br /><br />
<table>
<tr class="thead">
<td width="10" class="thead"> </td><td width="75" class="thead">Naam</td><td width="125" class="thead">Begindatum</td><td width="125" class="thead">Einddatum</td><td width="100" class="thead">Vereniging</td><td width="100" class="thead">Categorie</td><td width="100" class="thead">Aanmelden?</td>
</table>
<?php
while($rows=mysql_fetch_array($result)){
?>
<table>
<tr>
<td width="15"><input name="checkbox[]" type="checkbox" id="checkbox[]" value="<? echo $rows['evenementid']; ?>"></td>
<td width="85"><? echo $rows['naam']; ?></td>
<td width="130"><? echo $rows['begindatum']; ?></td>
<td width="175"><? echo $rows['einddatum']; ?></td>
<td width="100"><? echo $rows['categorieid']; ?></td>
<td width="100"><? echo $rows['organiserendeVerenigingid']; ?></td>
<td width="100"><? echo $rows['isAanmeldingVerplicht']; ?></td>
</tr>
</table>
</form>
<?php
}
?>
<?php
if(empty($_POST['delete']) || !is_numeric($_POST['delete']))
{
echo "Geen berichten geselecteerd";
} else {
foreach ($_POST['checkbox'] as $id)
{
mysql_query("DELETE FROM evenement WHERE evenementid='".$id."'") or die(mysql_error());
}
}
?>
Hoop dat jullie me kunnen helpen!
Alvast bedankt!
Gebruik code-tags voor het overzichtelijk weergeven van je code[/modedit]
Gewijzigd op 08/10/2010 21:34:58 door Joren de Wit
wat gaat er fout? wat zijn de errors? tot waar komt je script?
: Invalid argument supplied for foreach()
Maar volgens mij kloppen alle gegevens wel....
Je hebt verschillende formulieren in je pagina staan en zo te zien heeft het laatste formulier (waar het veld checkbox in zit) geen submit button. Dit formulier zal dus ook nooit verzonden worden en $_POST['checkbox'] zal niet bestaan. Dat is het probleem...
Als er nog niks is gepost ga jij toch al een foreach() doorlopen. Dat gaat niet.
Het probleem was dat form in de WHILE-loop stond. Het is nu verholpen. Domme fout van me!, toch bedankt voor de snelle reactie's!
Je moet alleen relevante code posten geen gehele scripts
En dit:
Je kan alleen door $_POST['checkbox'] fietsen
1 als deze bestaat http://www.php.net/isset
2 als het een array is http://www.php.net/is_array
En je moet oppassen voor SQL Injection
Dit topic kan gesloten worden;), bedankt allemaal voor de snelle reactie's!
Topics laten we in principe gewoon open. Anderen met hetzelfde probleem hebben misschien nog een vraag over de oplossing die jij gebruikt hebt :-)
Nu is het waarschijnlijk alleen voor jouw duidelijk hoe het opgelost is, maar voor iemand anders met een zelfde probleem een vraagteken.
En dan nog kan ook jouw oplossing nog foutief zijn.
Het probleem was dat de form wordt afgesloten in de WHILE loop, waardoor hij heel vaak form ging doen. Nu heb ik dit buiten de WHILE loop gezet en hij doet wat ik wil.
Dan zie je direct of het klopt. Neem verder de tips van Noppes nog even mee (controleren of variabelen wel bestaan en van het juiste type zijn).