FAQ |
Kalender |
![]() |
#1 | ||
|
|||
Klarade millennium-buggen
|
Har ett formulär som ser ut så här :
<FORM METHOD="post"> <FIELDSET> <LEGEND><B>HUR KOMMUNICERA VI MED KUNDEN?</B></LEGEND> <P> <INPUT TYPE="CHECKBOX" name="FORM_KUND_KONTAKT['SMS']" VALUE="ON" ID="0" <? echo GetChecked( $KUND_KONTAKT, 0); ?>> <LABEL FOR="postal">SMS</LABEL> <INPUT TYPE="CHECKBOX" NAME="FORM_KUND_KONTAKT['EMAIL']" VALUE="ON" ID="1" <? echo GetChecked( $KUND_KONTAKT, 1); ?>> <LABEL FOR="email">E-post</LABEL> <INPUT TYPE="CHECKBOX" NAME="FORM_KUND_KONTAKT['TELEFON']" VALUE="ON ID="2" <? echo GetChecked( $KUND_KONTAKT, 2); ?>> <LABEL FOR="telefon">Telefon</LABEL> </P> <INPUT TYPE="SUBMIT" VALUE="SÄND"> </FIELDSET> Php kod $KUND_KONTAKT = $_REQUEST["FORM_KUND_KONTAKT"]; Nu vill jag har ut vilken kryssruta som kunden har klicka i.. Det mest logiska vore : print $KUND_KONTAKT['SMS']; Men det fungera, vad gör jag för fel? |
||
![]() |
![]() |
![]() |
#2 | ||
|
|||
Har WN som tidsfördriv
|
Kod:
if(isset($KUND_KONTAKT['SMS'])){ echo 'du valde SMS'; } elseif(isset($KUND_KONTAKT['EMAIL'])){ echo 'du valde e-mail'; } |
||
![]() |
![]() |
![]() |
#3 | ||
|
|||
Supermoderator
|
Eftersom det är kryssrutor och man lämpligtvis kan välja mer än ett alternativ i det här fallet så bör det nog inte vara elseif.
__________________
Full-stack developer, free for smaller assignments |
||
![]() |
![]() |
![]() |
#4 | ||
|
|||
Banned
|
Klein:
Bättre om du använder $_POST istället för $_REQUEST. För $_GET kan skriva över $_POST om du använder $_REQUEST. Den magiska ordningen är GPC -> $_GET, $_POST, $_COOKIES |
||
![]() |
![]() |
![]() |
#5 | ||
|
|||
Har WN som tidsfördriv
|
|||
![]() |
![]() |
![]() |
#6 | ||
|
|||
Klarade millennium-buggen
|
Man kan inte använda isset för kolla innehåll array, man skall använda array_key_exists för detta, enligt se2.php.net . Det knepiga är , gör jag en print_r på strängen , så hittar jag innehållet :
Array ( ['SMS'] => ON ) Men kan får inte ut det med print variabel['SMS']; |
||
![]() |
![]() |
![]() |
#7 | ||
|
|||
Supermoderator
|
1. Det går alldeles utmärkt att använda isset även på array-variabler förutsatt att man använder det på rätt sätt. Ett array-element är på inget sätt annorlunda än en vanlig variabel.
2. Använd $_POST istället för $_REQUEST som redan sagts. 3. Vill du köra din variant så ta bort '' från key-värdena så fungerar det. Det är dock betydligt smidigare, och det som normalt används, att bara köra variabel[] som namn på fälten så får du en array per automatik. Då sätter du sms, email etc. som värde istället. 4. ID-värden ska inte börja med en siffra. 5. Sätt action-attribut på formuläret. 6. Sluttagg saknas på formuläret, men det kanske bara inte kom med här. 7. Använd inte stora bokstäver till allting, det blir så hiskligt fult och jobbigt att läsa ![]()
__________________
Full-stack developer, free for smaller assignments Senast redigerad av tartareandesire den 2010-06-01 klockan 11:47 |
||
![]() |
![]() |
![]() |
#8 | ||
|
|||
Klarade millennium-buggen
|
1) Hur är rätt sätt? Har skrivit print "<BR>".isset( $KUND_KONTAKT['SMS'] ); men får inte ut data.
2) Spelar någon roll.. Men visst, har ändra i koden. 3) Kan du ge ett kod exempel 4) Vad gör tagen ID? 5) Det finns! Det är samma fil, som laddar formuläret. 7) Jag tycker det är lättare och läsa HTML kod om den är i stor bokstäver..:-) Citat:
|
||
![]() |
![]() |
![]() |
#9 | ||
|
|||
Har WN som tidsfördriv
|
Citat:
echo 'ON'; } 4) ID identifierar elementet i fråga. 7) Använd inte stora bokstäver... |
||
![]() |
![]() |
![]() |
#10 | ||
|
|||
Klarade millennium-buggen
|
Det där fungera dålig.. Skit skumt! Jag ser innehållet med print_r men inte med print $KUND_KONTAKT['SMS'];
7) Smak sak! Jag håller med delvis att bit 5 skall vara clearad när man skriver , men ibland i HTML kod är enklare att läsa, om man har bit 5 satt i ASCII Texten. |
||
![]() |
![]() |
Svara |
|
|