phpbar.de logo

Mailinglisten-Archive

[php] checkboxes

[php] checkboxes

Dario Nuevo php_(at)_phpcenter.de
Mon, 11 Mar 2002 09:45:50 +0100


hi erik

>
><input type="checkbox" value="Amex" 
name="check_kredit[]" <?if
>($row["kreditkarten"] = Amex) print "checked";?>>
>
>Diese Checkbox habe ich für jede Kreditkarte 
angelegt. Aber wenn ich ein
>'=' setze, bleibt die Box immer unmarkiert, wenn 
ich ein '==' setze ist
>sie immer markiert. Unabhängig davon, was in dem 
String in der Datenbank
>steht.

also erstens würde ich deine db ein bisschen 
ummodeln: eine seperate tabellen creditcards mit 
allen karten, die möglich sind..
1	|	amex
2	|	visa
3	|	master

dann in der anderen tabelle wird kreditkarten zu 
einem feld mit den id's von creditcards mit kommas 
getrennt (sicherer explode),
id	|	cards
1	|	2,3	(= visa & master)

fehler 1., bei strings immer ausführungszeichen 
machen beim vergleich:
>($row["kreditkarten"] = Amex
--->>($row["kreditkarten"] = "Amex"

dann wär das so aber auch nicht richtig..
ich würd eben ne comma-seperated-list machen im 
field, dann explode(",",$row["kreditkarten"]);
und dann mit den array-funktionen arbeiten, "ist 
wert in array?")
if(in_array(2, $exploded) == true) {
	// ok, id 2 ist in array -> weiter
}

dann würd ich mal nen blick ins manual zu den 
vergleichsoperatoren werfen..
ein normaler vergleich ("gleich als") ist im 
allgemeinen "=="..
also "ist $txt gleich hund?" =
if($txt == "hund") {
	//ok..
}
dies ist so, weil ein "=" eine zuweisung ist, kein 
vergleich ($txt = 5 weist du der variable $txt den 
wert 5 zu)..

bye
dn


php::bar PHP Wiki   -   Listenarchive