Probleem met checkboxen verwijderen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Sjoerd de Groot

Sjoerd de Groot

08/10/2010 21:16:34
Quote Anchor link
Beste phphulpers,

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)
PHP script in nieuw venster Selecteer het PHP script
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
<?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());

}
}



?>


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
 
PHP hulp

PHP hulp

18/12/2024 02:45:27
 
Vincent Huisman

Vincent Huisman

08/10/2010 21:18:20
Quote Anchor link
wat gaat er fout? wat zijn de errors? tot waar komt je script?
 
Sjoerd de Groot

Sjoerd de Groot

08/10/2010 21:19:28
Quote Anchor link
Hij geeft een foutmelding bij foreach:
: Invalid argument supplied for foreach()

Maar volgens mij kloppen alle gegevens wel....
 
Joren de Wit

Joren de Wit

08/10/2010 21:37:10
Quote Anchor link
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...
 
- SanThe -

- SanThe -

08/10/2010 21:37:59
Quote Anchor link
Als er nog niks is gepost ga jij toch al een foreach() doorlopen. Dat gaat niet.
 
Sjoerd de Groot

Sjoerd de Groot

08/10/2010 21:38:41
Quote Anchor link
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!
 
Noppes Homeland

Noppes Homeland

08/10/2010 21:38:55
Quote Anchor link
Zal maar niet beginnen over:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
if(empty($_POST['delete']) || !is_numeric($_POST['delete']))
?>


Je moet alleen relevante code posten geen gehele scripts

En dit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
foreach ($_POST['checkbox'] as $id)
?>


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
 
Sjoerd de Groot

Sjoerd de Groot

08/10/2010 21:43:45
Quote Anchor link
Dit topic kan gesloten worden;), bedankt allemaal voor de snelle reactie's!
 
Joren de Wit

Joren de Wit

08/10/2010 21:45:33
Quote Anchor link
Topics laten we in principe gewoon open. Anderen met hetzelfde probleem hebben misschien nog een vraag over de oplossing die jij gebruikt hebt :-)
 
Noppes Homeland

Noppes Homeland

08/10/2010 21:47:10
Quote Anchor link
Gij weet toch onderhand wel dat topics niet gesloten worden en dat er verlangt wordt dat je een duidelijke oplossings post doet.

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.
 
Sjoerd de Groot

Sjoerd de Groot

08/10/2010 21:53:28
Quote Anchor link
Sorry hoor, ben hier ook pas sinds een uur lid van deze site. Verder nog nooit gebruik gemaakt van deze site. Vandaar.

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.
 
Joren de Wit

Joren de Wit

08/10/2010 21:56:31
Quote Anchor link
Dat is inderdaad duidelijk het probleem. Om te controleren of de $_POST array er wel uit ziet zoals jij verwacht, kun je deze natuurlijk ook altijd even op het scherm printen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo '<pre>'.print_r($_POST, true).'</pre>';
?>

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).
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.