Ik heb hetvolgende script:
<?php
$error = 0;
$nieuw_venster = 0;
foreach($_POST as $key => $value){
if ($key != "submit") {
if (eregi("titel_", $key)) {
$id = str_replace("titel_", "", $key);
if ($db->query("UPDATE menu SET titel = '".add($_POST[$key])."' WHERE id = '".$id."'") != TRUE) {
echo 'Error: '.$db->error;
$error = 1;
}
}
elseif (eregi("link_", $key)) {
$id = str_replace("link_", "", $key);
if ($db->query("UPDATE menu SET link = '".add($_POST[$key])."' WHERE id = '".$id."'") != TRUE) {
echo 'Error: '.$db->error;
$error = 1;
}
}
elseif (eregi("nieuw_venster_", $key)) {
$id = str_replace("nieuw_venster_", "", $key);
if ($_POST[$key] == NULL) {
$nieuw_venster = 0;
}
else {
$nieuw_venster = 1;
}
echo "Id: ".$id." Waarde: ".$nieuw_venster."<br />";
if ($db->query("UPDATE menu SET nieuw_venster = '".add($nieuw_venster)."' WHERE id = '".$id."'") != TRUE) {
echo 'Error: '.$db->error;
$error = 1;
}
}
else {
echo 'Onbekende update.';
}
}
?>
Alles word ge- update, behalve het nieuwe venster.
Ik heb als output:
Id: 1 Waarde: 1
Id: 3 Waarde: 1
Id: 2 Waarde: 1
Dit klopt, want nu heb ik alles "gecheckt".
Als ik id 3 uncheck en op me submit knop druk dan krijg ik de output:
Id: 1 Waarde: 1
Id: 2 Waarde: 1
En nu heeft hij niet de waarde in de database op 0 gezet.
Wat doe ik verkeerd?
Mvg Joost.
Edit:Iets verderop is de check of er een error is, er is geen error.
Edit2:Van 0 naar 1 wijzigen werkt wel...