Checkbox Array
Ik wil entry's kunnen verwijderen dmv checkboxen. Ik heb dus een lijst gegenereerd waarin alle agenda entrys staan met een checkbox ervoor.
Heb dmv een webtutorial een script geschreven dat een array zou moeten maken van alle aangekruiste chekboxen en me daarna doorstuurt naar een volgende pagina. Alles lijkt goed te gaan tot op de vervolgpagina. Hier krijg ik zonder dat ik dit heb gevraagd het volgende te zien:
26 is checked24 is checked30 is checked34 is checked
Lijkt me dus n geval van, array werkt, maar wat dan?
Hier de scripts.
Script 1 (checkboxpage)
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
include 'config.php';
$calender = "SELECT * FROM calender";
$exe_calender = mysql_query($calender);
if (mysql_num_rows($exe_calender) > 0){
echo "<table align=center border=1>";
echo "<tr><td align=center width=250><b>$delete</b><td align=center width=250><b>$topic</b></td><td align=center width=150><b>$location</b></td><td align=center width=150><b>$date</b></td></tr>";
while ($rij = mysql_fetch_array($exe_calender)){
echo "<tr><form method=post action=test.php><td align=center><input type=checkbox name=id[] value=".$rij["id"]." />";
echo "<td>" .$rij["topic"]."</td>";
echo "<td>" .$rij["location"]."</td>";
echo "<td>" .$rij["date"]."</td></tr>";
}
echo "<input type=submit name=button value=$delme>";
}
include'footer.php';
?>
include 'config.php';
$calender = "SELECT * FROM calender";
$exe_calender = mysql_query($calender);
if (mysql_num_rows($exe_calender) > 0){
echo "<table align=center border=1>";
echo "<tr><td align=center width=250><b>$delete</b><td align=center width=250><b>$topic</b></td><td align=center width=150><b>$location</b></td><td align=center width=150><b>$date</b></td></tr>";
while ($rij = mysql_fetch_array($exe_calender)){
echo "<tr><form method=post action=test.php><td align=center><input type=checkbox name=id[] value=".$rij["id"]." />";
echo "<td>" .$rij["topic"]."</td>";
echo "<td>" .$rij["location"]."</td>";
echo "<td>" .$rij["date"]."</td></tr>";
}
echo "<input type=submit name=button value=$delme>";
}
include'footer.php';
?>
script2 (rare meldingen page):
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
include 'config.php';
$selectedid = array();
if (isset($_POST["id"])){
$selectedid = $_POST["id"];
}
echo "$selectedid[1]";
$del = "DELETE FROM calender WHERE id=$id";
if (!mysql_query($del)){
session_start();
$_SESSION['del'] = '0'; /* add passes a 0 which triggers a fail display on the index screen */
header ("location: index.php");}
else{
session_start();
$_SESSION['del'] = '1'; /* add passes a 1 which triggers a succes display on the index screen */
header ("location: index.php");}
include 'footer.php';
?>
include 'config.php';
$selectedid = array();
if (isset($_POST["id"])){
$selectedid = $_POST["id"];
}
echo "$selectedid[1]";
$del = "DELETE FROM calender WHERE id=$id";
if (!mysql_query($del)){
session_start();
$_SESSION['del'] = '0'; /* add passes a 0 which triggers a fail display on the index screen */
header ("location: index.php");}
else{
session_start();
$_SESSION['del'] = '1'; /* add passes a 1 which triggers a succes display on the index screen */
header ("location: index.php");}
include 'footer.php';
?>
Iemand een idee wat ik mis doe? En nu ik toch aan het posten ben, iemand enig idee hoe ik mijn submit button onderaan de pagina kan zetten?
Alvast Bedankt
dus
??
Ik ga er even vanuit. Er is echt zoveel mis met dit script.
1.
ten eerste als je een array hebt dan wil je die normaal gesproken loopen met een foreach bijvoorbeeld. Als je dan 1 query per rij wilt doen dan zul je dus moeten bedenken wat session['del'] moet zijn als 1 rij wel succesvol is verwijderd en de andere niet.
2.
$del = "DELETE FROM calender WHERE id=$id";
$id wordt nergens gedfineerd
3.
include 'footer.php';
wordt niet uitgevoerd nadat pagina al is doorverwezen naar index.php
als header location faalt is er geen header & body alleen een footer
4.
waarom de nog een extra door verwijs pagina maken om 1 form te processen? dat is alleen maar extra delay. Maak een functie aan die je form processed en zit deze bovenaan in je index.php ofzo
5.
Code (php)
1
2
3
4
5
2
3
4
5
$selectedid = array();
if (isset($_POST["id"])){
$selectedid = $_POST["id"];
}
echo "$selectedid[1]";
if (isset($_POST["id"])){
$selectedid = $_POST["id"];
}
echo "$selectedid[1]";
deze 5 regels zijn voor de functionaliteit hiervan hetzelfde als:
ik kan nog wel ff doorgaan, maar ik laat het hierbij
Je maakt gebruik van $_SESSION die ik nergens gevuld zie in 't script,
Maar ik heb effe een voorbeeldje gemaakt hoe je doormiddel van checkbox'n items makkelijk kunt deleten.
plak de code effe in een lege file noem die testje.php ofzo... en probeer um uit...
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?
if (!empty($_POST['wisid'])) {
$moetweg=$_POST['wisid'];
$query_add ="'".implode("','",$moetweg)."'";
$query = "DELETE FROM agenda WHERE id IN ($query_add)";
echo $query;
}
?>
<form method="post">
<label><input type="checkbox" name="wisid[0]" value="12" />12<br/></label>
<label><input type="checkbox" name="wisid[1]" value="23" />23<br/></label>
<label><input type="checkbox" name="wisid[2]" value="54" />54<br/></label>
<label><input type="checkbox" name="wisid[3]" value="66" />66<br/></label>
<label><input type="checkbox" name="wisid[4]" value="87" />87<br/></label>
<label><input type="checkbox" name="wisid[5]" value="90" />90<br/></label>
<input type="submit" value="WIS GEKOZEN AGENDA ITEMS" />
</form>
if (!empty($_POST['wisid'])) {
$moetweg=$_POST['wisid'];
$query_add ="'".implode("','",$moetweg)."'";
$query = "DELETE FROM agenda WHERE id IN ($query_add)";
echo $query;
}
?>
<form method="post">
<label><input type="checkbox" name="wisid[0]" value="12" />12<br/></label>
<label><input type="checkbox" name="wisid[1]" value="23" />23<br/></label>
<label><input type="checkbox" name="wisid[2]" value="54" />54<br/></label>
<label><input type="checkbox" name="wisid[3]" value="66" />66<br/></label>
<label><input type="checkbox" name="wisid[4]" value="87" />87<br/></label>
<label><input type="checkbox" name="wisid[5]" value="90" />90<br/></label>
<input type="submit" value="WIS GEKOZEN AGENDA ITEMS" />
</form>