Checkboxeintrag editieren

R3DD3VIL

Mitglied
Guten Morgen zusammen,

ich hab ein kleines Problem noch in meinem Script, wo mir gerade biserl der Faden fehlt.
Und zwar hab ich eine Checkbox, die beim aktivieren eine 1 und beim deaktivieren eine 0 erhält. So wird es auch aus der DB dann ausgelesen.
Allerdings gibts noch eins das mich stört. Wenn ich den Eintrag editieren möchte, ist mein Checkboxfeld immer leer, egal ob dieses eigentlich aktiviert ist oder nicht. Es soll aber das checkboxfeld den Hacken enthalten, wenn es aktiviert ist wenn ich die Edit-Seite aufrufe.

Kann mir jemand sagen wo hier der Fehler ist Hier mal der Code.
PHP:
<html>
<body><div align="left">
<?php

    //Verbindung herstellen
    $db = mysql_connect("localhost","xxx","xxxx") or die(mysql_error());
    mysql_select_db("xxx-xxx",$db)or die(mysql_error());

    // Variablen aus POST/GET extrahieren
    $id = isset($GLOBALS['_'.$_SERVER['REQUEST_METHOD']]['id']) ? abs((int)$GLOBALS['_'.$_SERVER['REQUEST_METHOD']]['id']) : 0;
    $action = isset($_REQUEST['action']) ? $_REQUEST['action'] : null;

    switch( $action ) {

        //
        // Datensatz ändern
        //
        case 'edit':
            if( $_SERVER['REQUEST_METHOD'] == 'POST' ) {
                $sql = "UPDATE Pat_ListePatienten SET name='".mysql_real_escape_string($_POST['name'])."', vorname='".mysql_real_escape_string($_POST['vorname'])."', gebdat='".mysql_real_escape_string($_POST['gebdat'])."', dia_begin='".mysql_real_escape_string($_POST['dia_begin'])."', albis_id='".mysql_real_escape_string($_POST['albis_id'])."', current_dialyse='".mysql_real_escape_string($_POST['current_dialyse'])."' WHERE id=".$id;
		//Speichern in Tabelle Dv_Old
                $old = "UPDATE Dv_Old SET name='".mysql_real_escape_string($_POST['name'])."', vorname='".mysql_real_escape_string($_POST['vorname'])."', gebdat='".mysql_real_escape_string($_POST['gebdat'])."' WHERE id=".$id;
				
				if(mysql_query($old,$db) );
                if( mysql_query($sql,$db) ) {
                    echo '<table style="border: 1px solid #000000;" width="700" align="left" bgcolor="#ffffff"><tr><td><font color="#05b916" size="2" face="Arial, Helvetica, sans-serif"><center><b>Patient mit der ID '.$id.' wurde erfolgreich aktualisiert.</b></center></font></td></tr></table>';
                } else {
                    echo '<table style="border: 1px solid #000000;" width="700" align="left" bgcolor="#ffffff"><tr><td><font color="#bc0404" size="2" face="Arial, Helvetica, sans-serif"><center><b>Fehler beim Aktualisieren des Datensatzes '.$id.'</b></center></font></td></tr></table>';
                }
            } else {
        
                $sql = "SELECT * FROM Pat_ListePatienten WHERE id=$id";
                $result = mysql_query($sql,$db);
                $data = mysql_fetch_array($result);
                $data = array_map('htmlspecialchars', $data);
				
			
				
?>
<form method="post" action="<?php echo $PHP_SELF ?>" name="edit">
<table>
<tr>
<td colspan="2"><b>Patientendaten editieren</b></td>
</tr>
<tr>
<td height="8"></td>
</tr>
</table>
<input type="hidden" name="id" value="<?php echo $data["id"] ?>">
<table width="700" style="border: 1px solid #000000;" bgcolor="#FFFFFF">
<tr>
<td width="120">Kennzahl</td>
<td colspan="2"><?php echo $data["pid"] ?></td>
</tr>
<tr>
<td>Name</td>
<td colspan="2"><input type="text" name="name" value="<?php echo $data["name"] ?>" size="30"></td>
</tr>
<tr>
<td>Vorname</td>
<td colspan="2"><input type="text" name="vorname" value="<?php echo $data["vorname"] ?>" size="30"></td>
</tr>
<tr>
<td>Geburtsdatum</td>
<td width="20"><input type="text" name="gebdat" value="<?php echo $data["gebdat"] ?>" size="20"></td>
<td align="left"><a href="javascript:cal1.popup();"><img src="../dia/grafik/kalender.gif" border="0" title="Kalender"></a></td>
</tr>
<tr>
<td>Dialysebeginn</td>
<td width="20"><input type="text" name="dia_begin" value="<?php echo $data["dia_begin"] ?>" size="20"></td>
<td align="left"><a href="javascript:cal1.popup();"><img src="../dia/grafik/kalender.gif" border="0" title="Kalender"></a></td>
</tr>
<tr>
<td>Albis-Nummer</td>
<td colspan="2"><input type="text" name="albis_id" value="<?php echo $data["albis_id"] ?>" size="20"></td>
</tr>
<tr>
<td>In Dialyse</td>
<td colspan="2"><input type="checkbox" name="current_dialyse" value="1" <?php echo $data["current_dialyse"] ?>></td>
</tr>
<tr>
<td>&nbsp;</td>
<td colspan="2"><input type="submit" name="submit" value="&Auml;ndern"></td>
</tr>
</table>
</form>
<script language="JavaScript">
var cal1 = new calendar3(document.forms['edit'].elements['gebdat']);
var cal1 = new calendar3(document.forms['edit'].elements['dia_begin']);
</script>

Über Hilfe wäre ich sehr dankbar
MFG
R3DD3VIL
 
Wenn Du den Wert aus der DB kennst, kannst Du im HTML-Code an die entsprechende Stelle ein "checked" einfügen lassen. Damit würde die Box dann aktiviert sein.

Hier mal ein einfaches HTML-Beispiel:
HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
       "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Checkboxen definieren</title>
</head>
<body>

<h1>Pizzabelag nach Wahl!</h1>

<form action="input_checkbox.htm">
  <p>Kreuzen Sie die gew&uuml;nschten Zutaten an:</p>
  <p>
    <input type="checkbox" name="zutat" value="salami" checked> Salami<br>
    <input type="checkbox" name="zutat" value="pilze"> Pilze<br>
    <input type="checkbox" name="zutat" value="sardellen"> Sardellen
  </p>
</form>

</body>
</html>

Bei Dir müßte dann
Code:
<tr>
<td>In Dialyse</td>
<td colspan="2"><input type="checkbox" name="current_dialyse" value="1" CHECKED<?php echo $data["current_dialyse"] ?>></td>
</tr>
entsprechend dem DB-Wert per PHP gesetzt werden...
 
Das mit checked ist mir klar. Aber der Hacken soll ja nicht duaerhaft drin sein in der Checkbox, sondern nur dann wenn er auch in der DB aktiviert ist.

Sprich ich geh auf die Edit-Seite, und in der DB ist bei diesem Eintrag die 1, soll der Hacken auch im Edit-Formular sein. Hat der DB Eintrag aber die 0, soll im Edit-Formlar kein Hacken sein. So das ich dort immer weiss ob der Checkboxeintrag aktiv oder inaktiv ist.

Ist ja mit dem checked nicht gegeben, da er daueraktiv ist.

MFG
R3DD3VIL
 
....
Bei Dir müßte dann
Code:
<tr>
<td>In Dialyse</td>
<td colspan="2"><input type="checkbox" name="current_dialyse" value="1" CHECKED<?php echo $data["current_dialyse"] ?>></td>
</tr>
entsprechend dem DB-Wert per PHP gesetzt werden...

Damit meinte ich, Du holst den Wert dafür aus der DB. Ist 1 eingetragen, soll er ein "checked" hinzufügen...wenn nicht, dann nix.

Also vom Prinzip her:
Code:
<tr>
<td>In Dialyse</td>
<td colspan="2"><input type="checkbox" name="current_dialyse" value="<?php echo $data["current_dialyse"] ?>" <?php if($data["id"] == "1") echo "checked"; ?>></td>
</tr>
 
Zurück