login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Checkboxes toevoegen aan records (verwijderen).

Offline Alucardu - 22/04/2008 13:44
Avatar van AlucarduNieuw lid Hey, ik ben druk bezig met mijn (simpele) database omdat ik net wat PHP/MySQL aan het leren ben ga ik steeds een stapje verder en dan loop je op een gegeven moment tegen een deur.

Ik wil graag dat wanneer ik mijn database in de website bekijk dat er bij elke record een checkbox staat, ik heb gezocht op "add checkboxes records php" maar geen pagina gevonden met wat ik dus zoek.

Aan die checkboxes (die gekoppeld zijn aan een id nummer) wordt een koppeling gemaakt naar een manier om die id nummers (en dus de record) uit de database te verwijderen.

Heeft iemand hier nog tips voor?

14 antwoorden

Gesponsorde links
Offline Abbas - 22/04/2008 13:51
Avatar van Abbas Gouden medaille

Crew .NET
Citaat:
en dan loop je op een gegeven moment tegen een deur.
Dat is dom! Je doet gewoo de klink naar beneden en gaat door de deur... Nee nee, bij elke waarde die je uitleest uit de DB zet je dit stukje bijvoorbeeld:
  1. echo '<input type="checkbox" name="verwijder[]" value=' . $sql["id"] . ' />';
  2. //$sql["id"] is dan een waarde (zoals een id) die je aan de CB toevoegt
En met dit stukje code verwijder je meerdere geselecteerde items van die lijst met checkboxen:
  1. //Je moet zelf wel het formulier en dergelijke verder maken
  2. <input type="submit" value="Verwijder" class="knop">
  3.  
  4. <?php
  5. if (isset($_POST['verwijder']) && is_array($_POST['verwijder']))
  6. {
  7. mysql_query("DELETE FROM tabel WHERE id IN (" . implode(',', $_POST['verwijder']) . ")");
  8. }
  9. ?>
Offline Alucardu - 22/04/2008 14:06
Avatar van Alucardu Nieuw lid Ja deuren, ze blijven gevaarlijk hé.

Plaatscode: 7442

Dat is dus de code die mijn records uit de database haalt en ze netjes verveeld in een tabel.

"naam" is de 1e cel, daar wil ik dus graag een checkbox voor hebben (de checkboxen hoeven niet in een aparte cel oid).

Met echo kan je in PHP code iets laten zien, ik wil de checkboxes voor de "naam" hebben staan dus zou ik de code dus in die TD moeten verwerken.

Plaatscode: 7443

Dan krijg ik dit,


Plaatscode: 7444
"Parse error: parse error, unexpected T_STRING, expecting ',' or ';' in C:\Program Files\EasyPHP 2.0b1\www\test\site\index.php on line 62".

Die foutmelding heeft vast te maken met de echo die er voor zit.
Offline Abbas - 22/04/2008 14:11 (laatste wijziging 22/04/2008 14:12)
Avatar van Abbas Gouden medaille

Crew .NET
Regel 8 was inderdaad verkeerd. Daar moest die 'echo' weg. Zo moet het: http://www.plaatscode.be/7445Vervang dan wel die $sql["id"] nog door $aBerichten of wat dat bij jou moet zijn.
Offline Alucardu - 22/04/2008 14:26 (laatste wijziging 22/04/2008 14:27)
Avatar van Alucardu Nieuw lid Hey ja, idd. Dus die echo die hoeft niet omdat er voor al een echo stond die alles liet zien, die dubbele echo was dus overboden.

Goed, nu heb ik dus idd wat jij al tikte. Maar nu krijg ik 2 tabellen om het zo te noemen. Want ik krijg eerst 32x

"Notice: Undefined variable: sql in C: \Program Files\EasyPHP 2.0b1\www\test\site\index.php on line 62"

En daarna de juiste tabel met alle inhoud + checkboxes. Waar komt die 1e tabel vandaan?

Het heeft iets met die "value=' . $sql["$aBerichten"] . 'l" te maken, want als ik deze code weg laat krijg ik overal dus wel netjes een checkbox voor zonder verdere problemen.
Offline Abbas - 22/04/2008 14:28
Avatar van Abbas Gouden medaille

Crew .NET
Natuurlijk. Je moet dit doen: $aBerichten["id_kolom"], enkel die id_kolom moet je maar vervangen door wat in jouw tabel de kolomnaam van id is.
Offline Kr4nKz1n - 22/04/2008 14:29 (laatste wijziging 22/04/2008 14:30)
Avatar van Kr4nKz1n Onbekend
  1. echo '<input type="checkbox" name="verwijder[]" value=' . $sql["id"] . ' />';


Je gebruikt geen quotes bij value.
  1. echo '<input type="checkbox" name="verwijder[]" value="' . $aBerichten["id"] . '" />';
Offline Alucardu - 22/04/2008 17:10 (laatste wijziging 22/04/2008 17:18)
Avatar van Alucardu Nieuw lid Hey, de checkboxes kloppen nu mooi , nu ben ik (al)weer een tijdje bezig om dus de records daadwerkelijk te verwijderen,

Mijn verzend formulier werkt nu wel. Maar als ik dus 2 checkboxes aanvink en op verwijderen druk krijg ik deze foutmeldingen,

Notice: Undefined index: naam in C: \Program Files\EasyPHP 2.0b1\www\test\site\index.php on line 104

Notice: Undefined index: achternaam in C: \Program Files\EasyPHP 2.0b1\www\test\site\index.php on line 108

Notice: Undefined index: adres in C: \Program Files\EasyPHP 2.0b1\www\test\site\index.php on line 112

Notice: Undefined index: woonplaats in C: \Program Files\EasyPHP 2.0b1\www\test\site\index.php on line 116

Notice: Undefined index: telefoonnummer in C: \Program Files\EasyPHP 2.0b1\www\test\site\index.php on line 120

Maar ook wordt het formulier echo geactiveerd want dit staat onder de fouten.

"De volgende fouten zijn opgetreden:

Je hebt geen naam ingevuld
Je hebt geen achternaam ingevuld
Je hebt geen adres ingevuld
Je hebt geen woonplaats ingevuld
Je hebt een ongeldige telefoonnummer ingevuld
Vul de gegevens goed in en verzend het formulier opnieuw."

Als ik mijn invul formulier doe dan krijg ik niet de foutmeldingen, maar andersom dus wel. Dus dan zou het logisch zijn dat mijn verwijder knop elke "method="POST">" activeerd, in ieder geval in die richting. Is dit op te lossen door met "id=verwijder" te werken en die te koppelen?

Hier nog een keer mijn volledige code want ik kan niet vinden hoe mijn verwijder knop ook mijn verzend knop activeerd.

Plaatscode: 7447
Offline roelh - 22/04/2008 21:30
Avatar van roelh PHP gevorderde Je hebt $aFouten[]

de eerste is goed, de opvolgende meot je volgens mij dit doen:

$aFouten[]. (dus een punt erachter)
Offline Rens - 22/04/2008 21:33
Avatar van Rens Gouden medaille

Crew algemeen
Nee, want het is een array.
En door [] te doen, maak je een nieuw element in de array aan.
Offline roelh - 22/04/2008 21:38
Avatar van roelh PHP gevorderde Aahh oke, ik dacht dat het zo moest, sorry dan!:)
Offline Alucardu - 23/04/2008 07:22
Avatar van Alucardu Nieuw lid Verder niemand een goed idee hoe ik dit kan oplossen?
Offline friko - 23/04/2008 08:31 (laatste wijziging 23/04/2008 08:33)
Avatar van friko Nieuw lid tuurlijk.
  1. $Query = mysql_query("SELECT * FROM TABEL WHERE RIJ ORDER BY RIJ");
  2. while($geef = mysql_fetch_assoc($Query)){
  3.  
  4. echo "<td width='42%'><input type='checkbox' name='id[]' value='".$geef['ID']."'>&nbsp;<input type='tekst' name='id[]' size='30' value='".$geef['Rij']."'></td>\n";
  5.  
  6.  
  7. }


Dus wat ik gedaan heb is de checkboxen het id gegeven aan de checkboxen van de weergave rij.
Nu zal voor elk record een checkboxje komen met de daarbij behoorende id waarde.

Je kan nu het id aanroepen

succes

edit: ik zag net dat er al antwoorden gegeven waren...je moet zelf maar even kijken of je hier iets mee kan
Offline Alucardu - 23/04/2008 11:08
Avatar van Alucardu Nieuw lid Verdorie, ik krijg het maar niet voor elkaar. Verschillende scrips bekeken maar elke keer krijg weer ergens een foutmelding.

Plaatscode: 7466

Dat is de gehele code, ik heb nu wel voor elkaar dat ik netjes een checkbox krijg voor elke record die ik uit de DB haal.

Ik heb een tabel waar alle records inkomen, aan die tabel heb ik een cel toegevoegt en deze code ingezet.

"<input type="checkbox" name="verwijder[]" value="' . $aBerichten["id"] . '" />"

Deze code maakt dus een checkbox die gekoppeld is aan het "id" nummer van de record waar die voor staat (lijkt me).

Maar ik krijg de koppeling tussen een button en het verwijderen van de gekozen checkboxes maar niet goed.
Offline woms - 25/04/2008 18:41 (laatste wijziging 25/04/2008 18:42)
Avatar van woms Nieuw lid Ik heb het een keer zo gedaan:
archief.php
  1. //de films laten zien
  2. $row_count = 0;
  3.  
  4. $res_g = mysql_query("SELECT * FROM films ORDER BY id");
  5. if (mysql_num_rows($res_g) >= 1) {
  6. echo '<form method="post" action="delete.php" name="deleten">';
  7. while ($row = mysql_fetch_array($res_g))
  8. {
  9. $id = $row['id'];
  10. $naam = $row['naam'];
  11. $genre = $row['genre'];
  12. $tijd = $row['tijd'];
  13. $jaar = $row['jaar'];
  14. $beschrijving = $row['beschrijving'];
  15. $waardering = $row['waardering'];
  16. $kijken = $row['kijken'];
  17. $toegevoegd = $row['toegevoegd'];
  18. $cover = $row['cover'];
  19. $tijdnu = time('H:i');
  20. $eindigd = $tijdnu + $tijd;
  21. echo '
  22. <table border="1" width="700px" id="$id">
  23. <tr>
  24. <td rowspan="2" width="160">&nbsp</td>
  25. <td colspan="2"><b><font size="6">'.$naam.'</font></b></td>
  26. </tr><tr>
  27. <td height="26"><b>Beschrijving:</b></td>
  28. <td height="26"><b>Informatie:</b></td>
  29. </tr><tr>
  30. <td width="160" rowspan="2" valign="top"><p align="center"><img align="center" width="150" height="210" src="'.$cover.'" alt="geen cover"/></p></td>
  31. <td height="265" width="300px" rowspan="2" valign="top">'.$beschrijving .'</td>
  32. <td height="50px"><b>Genre:</b> '.$genre.'<br /><b>Jaar uitgave:</b> '.$jaar.'<br /><b>Duur:</b> '.$tijd.'<br /></td>
  33. </tr><tr>
  34. <td height="201">&nbsp</td>
  35. </tr><tr>
  36. <td width="160"><a href="edit.php?id='.$id.'">'.$waardering.'</a></td>
  37. <td rowspan="2">&nbsp;</td>
  38. <td rowspan="2">Delete?<input type="checkbox" name=id'.$id.' value="ON"></td>
  39. </tr>
  40. </table><small>Film toegevoegd op '.$toegevoegd.'.</small><br /><br />'
  41. ;
  42. }
  43.  
  44. echo '<br /><input type="submit" value="Delete!" name="submit"><input type="reset" value="Reset" name="reset"></form>';
  45. }
  46. else {
  47. echo "Er zijn geen films in de database.";
  48. }
  49.  
  50. ?>

delete.php:
  1. //i is het laagst mogelijke id
  2. $i = 1;
  3.  
  4. while ($i < $max) {
  5. if (isset($_POST['id'. $i])) {
  6. $deleten = mysql_query("DELETE FROM films WHERE id =". $i);
  7. mysql_query("DELETE FROM films WHERE id =". $i);
  8. }
  9. $i ++;
  10. }
  11. //als het deleten is gelukt zeg: de films zijn gedelete!
  12. if ($deleten) {
  13. echo "De film(s) zijn succesvol gedelete!<br />Klik <a href='archief.php'>hier</a> om terug te gaan naar het archief."; }
  14. else {
  15. echo "Er is iets mis gegaan! Probeer het opnieuw.<br />Klik <a href='archief.php'>hier</a> om terug te gaan naar het archief.";
  16. }
  17. ?>

Dit werkt 
Kijk hier maar Probeer alles maar uit enzo Is niet erg als er iets verkloot wordt, want dit was ooit maar een test van hoe mysql een beetje werkt
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.612s