PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP Grundlagen (http://www.selfphp.de/forum/forumdisplay.php?f=12)
-   -   Problem mit mehreren gleichnamigen Checkboxen (http://www.selfphp.de/forum/showthread.php?t=13603)

Tis 31.05.2006 01:34:43

Problem mit mehreren gleichnamigen Checkboxen
 
Hallo allerseits,

ich bin grundsätzlich PHP-Anfänger (HTML aber weit fortgeschritten) und kenne mich damit nicht wirklich aus. Durch logisches Überlegen und nächtelanges Kombinieren war ich bisher in der Lage, das Bildergallerie-Skript eines Freundes meinen Wünschen entsprechend abzuändern, doch die nächte Hürde schaffe ich wohl nicht mehr allein :) :D

Aaalso...
Ich bin daran ein Suchformular zu gestalten, mittels welchem man eine Bildauswahl treffen kann. Die Bilder besitzen unterschiedliche Eigenschaften, die unter "bes" eingetragen wurden.
Im Formular sollte man nun diese Eigenschaften mittels Checkboxen auswählen können, mehrere Auswahlen sollten möglich sein. Die Checkboxen müssen dabei aber immer den selben Namen haben.

Gut. Wenn ich das so mache und die Suche abschicke, wird nachher in der Adresszeile jedes per Checkbox gewählte "bes" einzeln gezählt.
Sprich: "...result.php?&bes=1&bes=F&regi=..."

Was ich aber möchte, ist:

"...result.php?&bes=1F&regi=..."

Nach intensivem Googeln habe ich die (scheinbare) Lösung gefunden, dass man bei den Checkboxen jeweils beim name= noch zwei eckige Klammern anhängen soll. Gesagt, getan, doch das ganze funzt leider nicht. Quellcode sieht jetzt so aus:

Code:

<input type="checkbox" name="bes[]"  value="1" ><font size="-1">Airliner</font>
<input type="checkbox" name="bes[]"  value="F"><font size="-1">Frachter</font>
<input type="checkbox" name="bes[]"  value="B"><font size="-1">Business-Jets</font>

Wenn man nun aber die Checkboxen auswählt werden die nicht wie erwartet zu einem Stück zusammengefasst, sondern es heisst nachher:

"...result.php?&bes%5B%5D=1&bes%5B%5D=F&regi..."

Der Browser/das Skript meint also nun, die eckigen Klammern seien einfach Teil des Namens. Das ist ja aber nicht der Sinn der Sache :)

Weiss jemand, wie man das dem Browser/Skript austreiben könnte, bzw. was ich falsch mache?

Ich befinde mich da wie gesagt ziemlich im Bilndflug und habe nicht allzu viel Ahnung von dem, was ich tue. Aber bisher hat alles irgendwie geklappt...*g*

Achja, die Seite ist hier abrufbar, jetzt in der Version mit den eckigen Klammern (die nur leider nicht erkannt werden). Es geht dabei um die Auswahlkästchen "Airliner" "Frachter" und "Business-Jets".

http://www.swissaviationpix.org/spot.../search_de.php



Herzlichen Dank für eure Hilfe!

Grüsse,
Tis

Serp 31.05.2006 14:19:15

AW: Problem mit mehreren gleichnamigen Checkboxen
 
Nun, wie der Browser das beim Übertragen sieht, kann dir völlig egal sein - wichtig ist, wie PHP das sieht. Von PHP wird das dann nämlich durchaus als Array interpretiert. Sprich, wenn alle drei Checkboxen gesetzt sind, hast du am Ende "1" in $_POST['bes'][0], "F" in $_POST['bes'][1] und "B" in $_POST['bes'][2] stehen. Wenn einzelne nicht gesetzt sind verschiebt sich das natürlich entsprechend. Wenn du nur testen willst, ob eine bestimmte Checkbox gesetzt ist, würd ich dementsprechend mit if(in_array("F", $_POST['bes'])) testen.


Alle Zeitangaben in WEZ +2. Es ist jetzt 19:45:46 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.