Wie erreiche ich, dass die "checkboxen" ausgewählt bleiben?
Hugo Zeiss
- php
0 AndreD0 Hugo Zeiss0 small-step0 AndreD0 small-step0 AndreD
0 TomIRL
Guten morgen,
folgendes Problem:
Danke schon einmal im Voraus.
Gruß
Hugo
...
<form action="<? print $_SERVER['PHP_SELF'] ?>" method="post">
<input type="checkbox" name="status[]" value="offen" />offen<br>
<input type="checkbox" name="status[]" value="cancel" />cancel<br>
<input type="checkbox" name="status[]" value="abbruch" />abbruch<br>
<input type="submit" value="Prüfen...">
</form>
</body>
</html>
<?
if (isset($_REQUEST['status'])) {
reset($_REQUEST['status']);
echo implode(",",$_REQUEST['status']);
}
else {
print "Es ist keine Option ausgewählt.\n";
}
?>
Servus Hugo,
Wie erreiche ich, dass nach dem erneuten Laden der Seite die
ausgewählten Checkboxen gekennzeichnet sind? Man möchte ja
auch später noch sehen was man ausgewählt hat.
In dem Du beim Aufrufen des Forms checkst ob ein Parameter mit dem entsprechenden Wert gesetzt ist, also z.B. ob ein $_REQUEST["status"] == "offen" ist. Ist das der Fall schreibst Du in die betreffende Checkbox das Attribut das die Box ein Häkchen hat, also "checked".
Gruss AndreD
Hi AndreD
danke für Deine Antwort, dennoch glaube ich nicht,
dass es so einfach geht.
Folgende Situation:
ich wähle: offen und cancel
Ausgabe: offen,cancel
Könnte das Komma Probleme bereiten? Wenn ja wie könnte ich das
umgehen?
Nun stehen zwei bzw. mit dem Komma drei Werte im Array.
Wenn ich nun: $_REQUEST["status"] == "offen" -> false da cancel noch
dabei ist.
Sehe ich das so richtig? Falls ich falsch liegen ....
Danke für Eure Hilfe
gruß
Hugo
Hi,
Könnte das Komma Probleme bereiten? Wenn ja wie könnte ich das
umgehen?
Nun stehen zwei bzw. mit dem Komma drei Werte im Array.
Wenn ich nun: $_REQUEST["status"] == "offen" -> false da cancel noch
dabei ist.
Sehe ich das so richtig? Falls ich falsch liegen ....
Wie kommst du denn auf das Komma? $_REQUEST['status'] wird nicht funktionieren weil $status ein Array ist. Versuch es mit $status = $_POST['status'], bzw. $status = $_GET['status'] und greife mit $status[0] bis $status[2] auf die jeweiligen Values zu, z.B.
if($status[0] == "offen") echo "checked";
if($status[1] == "cancel") echo "checked";
if($status[2] == "abbruch") echo "checked";
Allerdings verstehe ich das hier nicht ganz:
Wenn ich nun: $_REQUEST["status"] == "offen" -> false da cancel noch dabei ist.
Willst du den Status "offen" von "cancel" abhängig machen? In dem Fall wäre das wohl
if($status[0] == "offen" & $status[1] != "cancel") echo "checked";
Gruß,
small-step
Hi small-step,
danke für Deine Hilfe. Habe mein Skript nun entsprechend
angepasst und .... hoppla alles fit.
Gruß
Hugo
PS: Danke auch an die anderen !!!
Hallo Hugo,
Sehe ich das so richtig? Falls ich falsch liegen ....
Mir ist nebenbei auch nicht ganz klar warum Du die Checkboxen in einem Array weitergibst anstatt jeden in einem eigenen Parameter also name="offen" für offen name="cancel" für cancel usw. Dann bräuchtest Du die Parameter nicht über das Array ansprechen und könnest für jeden einzeln abfragen ob dieser vorhanden ist und somit kontrollieren ob das Häkchen gesetzt ist oder nicht?
Andernfalls passt der Lösungsvorschlag von small-step, wobei ich nicht wusste das $_REQUEST keine Arrays übergeben kann, da ich bisher selten mit dieser Superglobalen gearbeitet habe, nur mit $_GET und $_POST und da gehts...
Gruss AndreD
Hi,
Andernfalls passt der Lösungsvorschlag von small-step, wobei ich nicht wusste das $_REQUEST keine Arrays übergeben kann, da ich bisher selten mit dieser Superglobalen gearbeitet habe, nur mit $_GET und $_POST und da gehts...
Kann es schon, ich arbeite nur nicht gern damit :-)
mir ging es dabei eher darum, dass das hier:
$_REQUEST["status"] == "offen"
nicht funktioniert weil er ja auf $_REQUEST['status'][0] zugreifen möchte, nicht auf $_REQUEST['status']. Das einzige was er bei echo $_REQUEST['status'] zu sehen bekommt ist "Array" :-)
Gruß,
small-step
Hallo
nicht funktioniert weil er ja auf $_REQUEST['status'][0] zugreifen möchte, nicht auf $_REQUEST['status']. Das einzige was er bei echo $_REQUEST['status'] zu sehen bekommt ist "Array" :-)
Da gebe ich Dir mal vollkommen recht, das habe ich in der Eile nicht wirklich wahrgenommen weil ich da für ein Array auch keine Notwendigkeit dafür sah. Wie auch immer: Er kann ja auf jeden Fall den übergebenen Parameter an eine Variable übergeben und damit weiterarbeiten...
Gruss & Danke für den Hinweis
AndreD
Moin Hugo,
Durch ne einfache if abfrage:
<input type="checkbox" name="status[]" value="offen" <?php if (status[offen]) echo "checked"; ?> >offen<br>
So in etwa!
Ugetestet!!
TomIRL