Probleme mit checkboxen ;-(

E

encom

Hallo, ich hole einige Werte aus einer mysql-DB (id, name) und stelle diese als Checkbox dar

PHP:
echo "<input type=\"checkbox\" name=\"zahlungsmethode[]\" value=\"".
$r_zm->id."\"".$SEL.">&nbsp;".$r_zm->name;


Ich übergebe die Werte als Postvariable,
gehe ich jetzt von diesem Formular zur nächsten Seite und danach zurück, habe ich die Werte mit Komma getrennt in einem Array.

Nun werden ja die Werte wieder aus der Datenbank ausgelesen und da geht das Problem los

Die Werte aus der datenbank lese ich in einer While schleife aus.
Die übergebenen Werte der zuvor ausgewählten Checkboxen lese ich mit Foreach aus.

Nur wie bekomme ich nun alle zuvor angeklickten Checkboxen wieder markiert?

Ich komme mit den zwei Schleifen nicht zurecht, entweder ich habe dann alle markiert oder keine.

Ich hoffe es kann einer helfen
Danke
 
Hi

Ich weiß jetzt nicht ob ich richtig verstanden habe was du machen willst. Ich versuche das jetzt noch mal in meinen Worten wieder zu geben.

Du hast eine Seite mit Checkboxen die dynamisch mit Werten aus einer Datenbank befüllt werden. Du machst ein paar Häckchen und schickst das Formular ab. Die Werte werden in dem Array "erte_vor" mitgegeben. Jetzt gehst du wieder zurück. Aber wie? Mit einem Extra Button oder über die Navigationsleiste des Browsers? Ich nehme jetzt mal an über einen extra Button und ein "Hidden" Feld in dem du das vorher übergeben Array mit serialize übergibst, denn anderst kann es nicht gehen. Du könntest jetzt das Array einfach umbennen. Sagen wir mal das erste array hieß "werte_vor" dann nennen wir das jetzt "werte_zurueck". Dann fragst du auf der Seite mit der Datenbankabfrage ob das Array "werte_zurück" existiert. Wenn ja liest du das aus und Füllst die Checkboxen. Wenn nicht bleibt das ganze lehr.

So müßt es eigentlich gehen.

Mfg Akkie
 
Ok, du hast mich schon mal rictig verstanden.
Ich gehe mit einem Button innerhalb des Fomrulars zurück, die Werte der zuvor markierten Checkboxen befinden sich in einem hiddenfeld, diese Werte habe ich mit implode mit einem komma voneinander getrennt.

Jetzt verstehe ich nicht was du meinst.

Ich will ja wieder alle Checkboxen wie vorher auch anzeigen lassen, nur dass die zuvor markierten wieder markirt sein sollen.

Das Problem ist ja, dass in dem array nur die ids der zuvor markierten checkboxen stehen und der Rest fehlt.

Also wie soll ich das dann abfragen?

Danke
 
Achso

PHP:
$array = explode(",", $_POST['array']);

$query = "SELECT id, name FROM table";
$result = mysql_query($query);
while ($row = mysql_fetch_array($result))
{
         if (in_array($row['id'], $array))
         { 
            //checked
         }
}
 
Du bist einfach Klasse, ich danke dir.

ich habe da mit for und while schleife versucht an die Werte zu kommen

hätte mir wohl man in_array anschauen sollen ;-)
 
Zurück