PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Checkboxen auslesen mit php


JasonX
2014-09-02, 21:35:45
Hallo,

ich habe ein kleines (oder größeres) Problem.

Ich möchte den Inhalt mehrer Checkboxen auslesen.
Folgender Sachstand. Mein Script ließt aus einer MySQL-Tabelle das Programm und den Status aus.

Wenn der Status 0 ist bleibt die Checkbox leer. Wenn der Status 1 ist. Ist sie aktiviert.

Wenn ich nun per Hand eine inaktive Checkbox aktivier, soll diese änderung natürlich als Status 1 in die SQL-Tabelle zurück geschrieben werden.

Hier wär der Code:

<?php
require_once("includes/dbconnect.inc.php");

$select = mysql_query("SELECT programme.P_Name, programme.status FROM kunden
JOIN bindung ON kunden.id = bindung.k_id
JOIN programme ON programme.id = bindung.p_id");
?>
<form>
<table border=1>
<tr>
<th>Prgramm</th>
<th>Update?</th>
</tr>
<?php
while ($obj = mysql_fetch_array($select)) {
$p_name = $obj['P_Name'];
$status = $obj['status'];
?>
<tr>
<td><?php echo $p_name; ?></td>
<td><input type="checkbox" name="cbxsatus" <?php if($status==1) echo "checked";?>/></td>
</tr>
<?php
}
?>
</table>
</form>


Das auslesen klappt ja. Ist ja auch das geringste Problem. Nur das zurück schreiben wird happig.

MfG
Jason

RattuS
2014-09-02, 22:08:25
Dein SELECT sieht aus, als wenn du bei der Darstellung gruppieren solltest. Möchtest du die Programme pro Kunde anzeigen? Dann müsstest du pro Kunde ein Formular bauen und dort zusätzlich Programm und Kunde hinterlegen. Für solche Meta-Daten, die nicht unbedingt sichtbar sein müssen, ist <input type="hidden" ... /> dein bester Freund.

Andernfalls ist mir anhand deines Ausschnittes nicht klar, wofür die Checkbox gilt.

JasonX
2014-09-02, 22:35:07
Hallo,

Also, zu deinem Tipp mit dem Gruppieren.
Das ist mir nach der x-ten ausgabe auch erst aufgefallen, das da etwas doppelt gemoppelt ausgegeben wird, da habe ich das nun erweitert.

Das mit der Checkbox ist nun von mir geändert worden in Radion buttons, da kann ich dann Werte von 0 und 1 vordefinieren und dementsprechend die Buttons setzen.

Siehe Anhang

Das übergebe ich an ein Array, lese da die Keynamen aus und nehme die als Suchwerte für die SQL-Tabelle. Diese bekommen dann die Werte des Arrays zugewiesen. (Zumindest in der Theorie). Mag zwar etwas durch die Brust ins Auge sein aber wenns zum Ziel führt ^^.

edit:
Haha, jetzt weiß ich worauf du hinaus willst.
Vor lauter Faulheit und Copy & Paste habe ich nicht umrissen, das ich für die Ausgabe aller Programme unabhängig vom Kunden, keinen JOIN brauche sondern mir eigentlich nur alle Programme ausgeben lassen muss XD

ezzemm
2014-09-03, 07:14:33
Vielleicht habe ich dein Problem nicht richtig verstanden: du willst daß PHP merkt wenn jemand im Browser einen Radiobutton betätigt und diese Änderung abspeichert? Das funktioniert so nicht.

Aktionen des Nutzers kann nur Javascript "auslesen". Diese Aktionen kann man per AJAX an ein PHP-Skript schicken, das dann diese Änderung in die DB schreibt.
Der klassische Weg ist die Radiobuttons in ein Formular einzubauen, das als Ziel dein PHP-Skript hat. Nach Klicken auf den Submit-Button kann PHP dann aus den POST/GET-Parametern die Werte der Radiobuttons auslesen.

Ersteres ist modern, aber auch anspruchsvoller. Letzteres recht simpel: http://php.net/manual/de/tutorial.forms.php