Kom ihåg mig?
Home Menu

Menu


Arrayer i php

 
Ämnesverktyg Visningsalternativ
Oläst 2010-05-30, 13:52 #1
klein klein är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Jul 2005
Inlägg: 2 225
klein klein är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Jul 2005
Inlägg: 2 225
Standard Arrayer i php

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&Auml;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?
klein är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-05-30, 13:54 #2
KarlRoos KarlRoos är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Jul 2007
Inlägg: 1 416
KarlRoos KarlRoos är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Jul 2007
Inlägg: 1 416
Kod:
if(isset($KUND_KONTAKT['SMS'])){
echo 'du valde SMS';
}
elseif(isset($KUND_KONTAKT['EMAIL'])){
echo 'du valde e-mail';
}
KarlRoos är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-05-30, 16:08 #3
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
Citat:
Ursprungligen postat av KarlRoos Visa inlägg
Kod:
if(isset($KUND_KONTAKT['SMS'])){
echo 'du valde SMS';
}
elseif(isset($KUND_KONTAKT['EMAIL'])){
echo 'du valde e-mail';
}
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
tartareandesire är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-05-30, 22:26 #4
hnn hnn är inte uppkopplad
Banned
 
Reg.datum: Mar 2004
Inlägg: 2 587
hnn hnn är inte uppkopplad
Banned
 
Reg.datum: Mar 2004
Inlägg: 2 587
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
hnn är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-05-31, 16:13 #5
KarlRoos KarlRoos är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Jul 2007
Inlägg: 1 416
KarlRoos KarlRoos är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Jul 2007
Inlägg: 1 416
Citat:
Ursprungligen postat av tartareandesire Visa inlägg
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.
Självklart är det så, jag tänkte att det var radio-knappar. Mitt fel!
KarlRoos är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-06-01, 09:55 #6
klein klein är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Jul 2005
Inlägg: 2 225
klein klein är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Jul 2005
Inlägg: 2 225
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'];



Citat:
Ursprungligen postat av tartareandesire Visa inlägg
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.
klein är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-06-01, 10:39 #7
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
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
tartareandesire är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-06-01, 17:35 #8
klein klein är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Jul 2005
Inlägg: 2 225
klein klein är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Jul 2005
Inlägg: 2 225
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:
Ursprungligen postat av tartareandesire Visa inlägg
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
klein är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-06-01, 21:19 #9
KarlRoos KarlRoos är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Jul 2007
Inlägg: 1 416
KarlRoos KarlRoos är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Jul 2007
Inlägg: 1 416
Citat:
Ursprungligen postat av klein Visa inlägg
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..:-)
1) if(isset($KUND_KONTAKT['SMS'])){
echo 'ON';
}

4) ID identifierar elementet i fråga.
7) Använd inte stora bokstäver...
KarlRoos är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-06-02, 07:18 #10
klein klein är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Jul 2005
Inlägg: 2 225
klein klein är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Jul 2005
Inlägg: 2 225
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.

Citat:
Ursprungligen postat av KarlRoos Visa inlägg
1) if(isset($KUND_KONTAKT['SMS'])){
echo 'ON';
}

4) ID identifierar elementet i fråga.
7) Använd inte stora bokstäver...
klein är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 23:04.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017