Hallo, ich finde keine Lösung für mein Problem. Vllt ist es auch schon zu spätz..
In der Datenbank gibt es ein Feld dort können die Werte von 0 bis 5 hintereinander mit komma getrennt stehen. also z.b. allow => 0,1,2,3 oder allow => 1,3,5
Jetzt will ich, dass wenn einer der werte (allow) mit denen einer forschleife übereinstimmt, dass die checkbox checked anzeigt wird, und wenn der wert nicht drin vorkommt, dass die checkbox unchecked angezeigt wird.
Mein lösungsversuch sah so aus:
Alles anzeigen
Klappt ja soweit so gut..
Nur nehmen wir an, $allow=="0,1,2,3,4";
Dann tritt bei der if abfrage ja 4 mal bei jeder if abfrage der else fall ein.. Weil 4 mal $i nicht 0 bzw. 1,2,3 oder 4 sein wird..
Ich hoffe ihr versteht was ich damit meine, ich find das gerade iwie was schwer logisch als text zu verfassen :-/
Danke mal wieder im Vorraus
EDIT:// Oder ich vereinfache das Bsp mal..
Alles anzeigen
In der Datenbank gibt es ein Feld dort können die Werte von 0 bis 5 hintereinander mit komma getrennt stehen. also z.b. allow => 0,1,2,3 oder allow => 1,3,5
Jetzt will ich, dass wenn einer der werte (allow) mit denen einer forschleife übereinstimmt, dass die checkbox checked anzeigt wird, und wenn der wert nicht drin vorkommt, dass die checkbox unchecked angezeigt wird.
Mein lösungsversuch sah so aus:
Quellcode
- <?
- $allow =$datenbankabfrage['allow'];
- $array = explode(",", $allow);
- for($i=0;$i<=count($array);$i++){
- if($array[$i]==0){
- echo "<input type=\"checkbox\" class=\"inputtext\" name=\"allow_contact1\" checked>";
- }else{ echo "<input type=\"checkbox\" class=\"inputtext\" name=\"allow_contact1\">"; }
- if($array[$i]==1){
- echo "<input type=\"checkbox\" class=\"inputtext\" name=\"allow_contact2\" checked>";
- }else{ echo "<input type=\"checkbox\" class=\"inputtext\" name=\"allow_contact2\">"; }
- //usw...
- }
- ?>
Klappt ja soweit so gut..
Nur nehmen wir an, $allow=="0,1,2,3,4";
Dann tritt bei der if abfrage ja 4 mal bei jeder if abfrage der else fall ein.. Weil 4 mal $i nicht 0 bzw. 1,2,3 oder 4 sein wird..
Ich hoffe ihr versteht was ich damit meine, ich find das gerade iwie was schwer logisch als text zu verfassen :-/
Danke mal wieder im Vorraus
EDIT:// Oder ich vereinfache das Bsp mal..
Quellcode
- <?php
- $allow ="0,1,2,3,4,5";
- $array = explode(",", $allow);
- for($i=0; $i<count($array); $i++) {
- ?>
- //nr0
- <input type="checkbox" name="personal" value="checkbox" <? if($array[$i]=='0'){ echo "checked";}?> >
- //nr1
- <input type="checkbox" name="personal" value="checkbox" <? if($array[$i]=='1'){ echo "checked";}?> >
- //nr2
- <input type="checkbox" name="personal" value="checkbox" <? if($array[$i]=='2'){ echo "checked";}?> >
- //nr3
- <input type="checkbox" name="personal" value="checkbox" <? if($array[$i]=='3'){ echo "checked";}?> >
- //nr4
- <input type="checkbox" name="personal" value="checkbox" <? if($array[$i]=='4'){ echo "checked";}?> >
- //nr5
- <input type="checkbox" name="personal" value="checkbox" <? if($array[$i]=='5'){ echo "checked";}?> >
- <?
- }
- ?>
- Funktioniert auch super. Nur läuft die forschleife ja jetzt 6 mal durch. Das heißt. nr0-nr5 werden einmal korrekt angezeigt, und noch 5 mal unchecked. aber diese 5 stück will ich ja gar nicht haben. die sind sinnlos.
- Ist ja nur weil die forschleife 5 mal durchläuft.
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Snowflake ()