Hallo,
ich habe folgende Aufgabe, die ich irgendwie nicht hinbekomme:
ich möchte mittels einer checkbox die Werte "JA" (wenn checked) oder "NEIN" (wenn unchecked) in einer Tabelle speichern.
Bevor das Formular angezeigt wird, lese ich die Tabelle aus, um
im Formular die checkbox als checked zu markieren, wenn in der
Tabelle bereits "JA" steht und umgekehrt.
Dazu habe ich folgendes Skript erstellt:
Beim ersten Aufruf bekomme ich folgende Fehlermeldung:
Undefined index: infok in ...\test_checkbox.php on line 37
(da, wo ich die Variable $infok mit dem Formularinhalt füllen will.
$infok = $_POST["infok"]; // Füllen der Variable mit Formularinhalt)
Setze ich das Häkchen, wird "on" in die Tabelle geschrieben (ohne Fehlermeldung.
Nehme ich das Häkchen wieder raus, wird "NEIN" in die Tabelle geschrieben (jedoch mit obiger Fehlermeldung.
Ich bin schon am Verzweifeln.
Wo habe ich da meinen Denkfehler ?
Kann mir da bitte jemand weiterhelfen?
Danke.
musikus69
ich habe folgende Aufgabe, die ich irgendwie nicht hinbekomme:
ich möchte mittels einer checkbox die Werte "JA" (wenn checked) oder "NEIN" (wenn unchecked) in einer Tabelle speichern.
Bevor das Formular angezeigt wird, lese ich die Tabelle aus, um
im Formular die checkbox als checked zu markieren, wenn in der
Tabelle bereits "JA" steht und umgekehrt.
Dazu habe ich folgendes Skript erstellt:
PHP-Code:
<h1>Test Checkbox</h1><br>
<?php
include ("db.php");
$id = "1"; // wird als Variable übergeben
$datum = date("Y.m.d");
$result = mysql_query("select * from daten WHERE id_nr='$id'");
$reihen = mysql_num_rows($result);
if (mysql_num_rows($result)) {
while($row=mysql_fetch_array($result)) {
$id = $row['id_nr'];
$vorname = $row['vname'];
$name = $row['nname'];
$email = $row['email'];
$infok = $row['infok']; // Zeile 37 die Fehler produziert !
}
}
if (!$infok) { $infok = "NEIN";
$infok_checked =" ";
echo "1. infok war nicht definiert und wurde auf \"NEIN\" gesetzt!<br>";
}
else {echo "1. infok ist bereits definiert: '$infok<br>";
$infok_checked = "checked = \"checked\"";}
if (isset($_POST["submit1"])) {
$vorname = $_POST["vorname"]; // Füllen der Variable mit Formularinhalt
$name = $_POST["name"]; // Füllen der Variable mit Formularinhalt
$email = $_POST["email"]; // Füllen der Variable mit Formularinhalt
$infok = $_POST["infok"]; // Füllen der Variable mit Formularinhalt
if (!$infok) { $infok = "NEIN";
$infok_checked =" ";
echo "2. infok war nicht definiert und wurde auf \"NEIN\" gesetzt!<br>";
}
else {echo "2. infok ist bereits definiert: '$infok<br>";
$infok_checked = "checked = \"checked\"";}
echo "INFOK_2: $infok<br>";
$SQL = "UPDATE daten SET vname = '$vorname',
nname = '$name',
email = '$email',
infok = '$infok',
datum = '$datum'
WHERE id_nr = '$id'";
$update = mysql_query($SQL)
or die ("SQL-Befehl nicht ausführbar!");
echo "<hr><br><strong><font color=\"#0000A0\">Ihre Daten wurden erfolgreich aktualisiert.<br></font></strong>";
}
?>
<form method="post" action="<? echo $_SERVER['PHP_SELF'] ?>">
<input type="hidden" name="id" value="<? echo "$id" ?>" size="">
<hr>
</center>
<table width="75%, *" border="1" cellpadding="3">
<tr>
<td><center><strong><font color="#FF0000">* </font></strong></center></td>
<td><strong>Vorame:</strong></td>
<td><input type="text" name="vorname" value="<? echo "$vorname" ?>" size="30"></td>
</tr>
<tr>
<td><center><strong><font color="#FF0000">* </font></strong></center></td>
<td><strong>Name:</strong></td>
<td><input type="text" name="name" value="<? echo "$name" ?>" size="30"></td>
</tr>
<tr>
<td><center><strong><font color="#FF0000">* </font></strong></center></td>
<td><strong>eMail:</strong></td>
<td><input type="text" name="email" value="<? echo "$email" ?>" size="45"></td>
</tr>
<tr>
<td><input name="infok" type="checkbox" <? echo "$infok_checked" ?>></td>
<td colspan="2">Bitte informieren Sie mich.</td>
</tr>
<tr>
<td colspan = "3">
<br><center>
<input type="submit" name="submit1" value="Daten übernehmen >>> ">
<br><br></center>
</td>
</tr>
</table>
</form>
Undefined index: infok in ...\test_checkbox.php on line 37
(da, wo ich die Variable $infok mit dem Formularinhalt füllen will.
$infok = $_POST["infok"]; // Füllen der Variable mit Formularinhalt)
Setze ich das Häkchen, wird "on" in die Tabelle geschrieben (ohne Fehlermeldung.
Nehme ich das Häkchen wieder raus, wird "NEIN" in die Tabelle geschrieben (jedoch mit obiger Fehlermeldung.
Ich bin schon am Verzweifeln.
Wo habe ich da meinen Denkfehler ?
Kann mir da bitte jemand weiterhelfen?
Danke.
musikus69
Kommentar