Thread: PHP hulp!
-
31-12-2009, 13:29 #1
PHP hulp!
jow,
Ik heb een probleem met een stuk php code.
De bedoeling is dus dat ik 1 of meerdere checkboxen aanduid en die dan delete in de databank (postgres btw). ik krijg hele tijd DB unknown error. Ik heb wat zitten debuggen en eerst gaf hij aan de er niet in $_POST['leden'] zit. Dat heb ik dan gefixt en in de plaats krijg ik dus een unknown error.
Ziet iemand de fout? of hoe ik miss anders kan doen?
edit : Blijkbaar is de POST['leden'] nog steeds leeg. maar waarom?
Code:<?php session_start(); require_once('databankConnectie.php'); global $db; /*$db->setFetchMode(DB_FETCHMODE_OBJECT);*/ if (isset($_POST['verwijder'])) { $toDelete = $_POST["leden"]; foreach($toDelete as $deleted) { $q = $db->query("DELETE FROM bockno.leden WHERE lidnr = ?",array($deleted)); } } $leden = $db->getAll('SELECT lidnr,nickname FROM bockno.leden'); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta http-equiv="Content-type" content="text/html; charset=iso-8859-1" /> <title> Dumbell paradise - Lijst van alle leden </title> <link rel="stylesheet" type="text/css" href="cssfile.css" /> </head> <body> <div id="wrapper"> <div id="header"> <div id="logo"><img src="fotos/headerfoto.jpg" alt="" width="800" height="150" /></div> <div id="bc"> <a href="home.php">Home</a> > <a href="welkom.php">Welkom</a> > lijst van leden </div> </div> <div id="nav"> <ul> <li><a href="home.php">Home</a></li> <li><a href="oefeningenLinks.php">Oefeningen</a></li> <li><a href="Trainingschemas.php">Trainingschema's</a></li> <li><a href="login.php">Inloggen</a></li> <li><a href="form.php">Registreren</a></li> <?php if($_SESSION["soort"] == "admin" || $_SESSION["soort"] == "lid" || $_SESSION["soort"] == "eLid") {?> <li><a href="ForumTopics.php">Forum</a></li> <?php }?> <?php if($_SESSION["soort"] == "admin") {?> <li><a href="VerwijderTopics.php">Verwijder Topics</a></li> <?php }?> </ul> </div> <div id="tekstwindow"> <h1>Lijst van leden </h1> <form method="post" action="<?php echo $PHP_SELF;?>"> <table cellpadding="5" cellspacing="0" border="1"> <tr> <th></th> <th>Lid</th> </tr> <?php foreach($leden as $lid){?> <tr> <td><input type="checkbox" value="<?php $lid[0]?>" name="leden[]"/></td> <td><?php echo $lid[1] ?></td> </tr> <?php }?> </table> <p><input type="submit" name="verwijder" value="verwijder" /></p> </form> <p><?php $toDelete = $_POST["leden"]; print_r($toDelete); echo $_POST["leden"];?></p> </div> </div> </body> </html>Guitars:ESP ltd M-1000 deluxe stb fm Epiphone LP Standard EMG 81/85,Keiper LP
Amp:Bugera 333XL 120W, H&K attax 100
"Hollow self-indulgence leading the way"no votes
-
-
31-12-2009, 13:40 #2Approved 9liver
- Registered
- 18/01/04
- Location
- Melle
- Posts
- 10,535
- iTrader
- 56 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 27/102
Mss omdat je checkboxen de naam "leden[]'" hebben?
“In terms of how we evaluate schooling, everything is about working by yourself. If you work with someone else, it’s called cheating. Once you get out in the real world, everything you do involves working with other people.”
PSN: Cycloon - Final Fantasy XIV: A realm reborn characterno votes
-
31-12-2009, 13:45 #3Guitars:ESP ltd M-1000 deluxe stb fm Epiphone LP Standard EMG 81/85,Keiper LP
Amp:Bugera 333XL 120W, H&K attax 100
"Hollow self-indulgence leading the way"no votes
-
31-12-2009, 13:53 #4Crew Member
- Registered
- 01/09/02
- Location
- Peutie
- Posts
- 7,664
- iTrader
- 0
- Mentioned
- 4 Post(s)
- Reputation
- 13/105
Dat is correct hoor: Handling checkbox in a PHP form processor
En wat is de exacte error want uw debug call is fout. $_POST['leden'] zal een array zijn en ga je met echo niet kunnen afdrukken. Daarvoor moet je print_r() gebruiken.Vanaf nu gaan we verder op BeyondGaming!
In deze thread wordt uitgelegd hoe je jouw account kan migreren.no votes
-
31-12-2009, 13:56 #5
Array ( [0] => ) dit is de output van print_r na dat ik de array geinitialiseerd heb met de POST waarde. Ik weet dus dat hij de POST['leden] niet gevuld heeft met de data.. Juist?
En de exacte error is. DB Error: unknown error
dat is alles
Edit! ok gefixt!
had hier een echo vergeten <td><input type="checkbox" value="<?php echo $member[0]?>"
en ik denk dat er twee dezelfde POST vars waren. en dat kan blijkbaar conflicten geven
cheers en bedankt mensen!Last edited by krawler; 31-12-2009 at 14:11.
Guitars:ESP ltd M-1000 deluxe stb fm Epiphone LP Standard EMG 81/85,Keiper LP
Amp:Bugera 333XL 120W, H&K attax 100
"Hollow self-indulgence leading the way"no votes
-
31-12-2009, 14:12 #6Approved 9liver
- Registered
- 18/01/04
- Location
- Melle
- Posts
- 10,535
- iTrader
- 56 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 27/102
Die action in je form mag je ook weglaten als je naar dezelfde pagina post. Ik zou alleszins eens proberen om 1 checkbox te gebruiken en zien wat dat oplevert. Als dat al niet werkt zit het probleem ergens anders.
Ik wist trouwens niet dat php die [] vereiste achter een naam voor multiple checkboxes, weer wat bijgeleerd
“In terms of how we evaluate schooling, everything is about working by yourself. If you work with someone else, it’s called cheating. Once you get out in the real world, everything you do involves working with other people.”
PSN: Cycloon - Final Fantasy XIV: A realm reborn characterno votes
-
01-01-2010, 15:27 #7
Even een paar opmerkingen ivm je code
<form method="post" action="<?php echo $PHP_SELF;?>">
$PHP_SELF bestaat niet, het werkt wel maar dat komt van vroeger. Het is dus $_SERVER['PHP_SELF'] maar ook dat is af te raden. Gewoon de naam van de file ingeven dus.
<form method="post" action="naam_file.php">
Wat je afhandeling betreft van je form doe je het verkeerd. Zo handel je een form in php af
Omdat je dan misschien niet weet van welke form het komt kan je een hidden field toevoegen binnen je formCode:<?php if($_SERVER['REQUEST_METHOD'] == 'POST') { // hier de afhandeling } ?>
<form action="naam_file.php" method="post">
<input type="hidden" name="txtHidden" value="verwijder" />
...
</form>
En dan krijg je als php-code
Code:<?php if($_SERVER['REQUEST_METHOD'] == 'POST') { if(isset($_POST['txtHidden']) && $_POST['txtHidden'] == "verwijder") { // verdere afhandeling } } ?>no votes
-
01-01-2010, 18:34 #8
Danku!
weer serieus wat bijgeleerd. Ben vrij nieuw in php.
Bedankt voor de feedback!Guitars:ESP ltd M-1000 deluxe stb fm Epiphone LP Standard EMG 81/85,Keiper LP
Amp:Bugera 333XL 120W, H&K attax 100
"Hollow self-indulgence leading the way"no votes

