/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Multiple selects i forms
Fra : Jeppe Vesterbæk


Dato : 03-07-03 16:49

Hej ...

Er ved at lege lidt med en ny php-side her i regnvejeret og er løbet ind i
et mindre spørgsmål. Jeg benytter xhtml 1.0 strict. Her er angivet, at man
skal bruge id-attributten til at angive navn på elementer, men at man
samtidig også skal bruge "name", da ikke alle browsere forstår "id", dvs. et
typisk input-felt kunne se ud som:

<input type="text" name="navn" id="navn">

Id-attributten må ikke indeholde [ eller ], hvilket giver problemer, når man
fra et felt i en form skal overføre flere værdier, som f.eks:

<select multiple="multiple" name="name[]" id="name[]">
<option value="nr1">Nr1</option>
<option value="nr2">N2</option>
<option value="nr3">N3</option>
</select>

Dette er ikke tilladt, hvis xhtml 1.0 strict skal overholdes (hvilket jeg
gerne vil). Hvis jeg så sætter id="name" og beholde name="name[]" er
standarden sjovt nok overholdt og jeg får det ønskede information medsendt.

SPØRGSMÅL (så kom de endelig, hva? (-: ):
1. Er der andre måder en at benytte name="name[]" (en array-attribut) til at
sende multiple værdier fra et form-felt via php?
2. Er det _altid_ name-attributten, der kommer til at stå i $_POST når data
er sendt, eller er dette browser-afhængigt?

/Jeppe



 
 
Peter Brodersen (03-07-2003)
Kommentar
Fra : Peter Brodersen


Dato : 03-07-03 18:27

On Thu, 3 Jul 2003 17:48:52 +0200, "Jeppe Vesterbæk"
<jhve02@FJERNcontrol.auc.dk> wrote:

>Her er angivet, at man
>skal bruge id-attributten til at angive navn på elementer, [..]

Det er dog ikke et krav, at alle elementer skal være navngivet på den
måde. Men det vil være hensigtsmæssigt, hvis du fx skal referere til
en form eller lignende vha. javascript. Det er langt lettere at
referere til ting ud fra en unik id, i stedet for at referere til
"form nr. 2, felt nr. 3".

>1. Er der andre måder en at benytte name="name[]" (en array-attribut) til at
>sende multiple værdier fra et form-felt via php?

Du kan manuelt tjekke querystring'en og opdele på først &, så =. Men
det kan let være noget fedtværk.

>2. Er det _altid_ name-attributten, der kommer til at stå i $_POST når data
>er sendt, eller er dette browser-afhængigt?

Ja, altid. id har ikke noget direkte med form-behandlingen at gøre.

... og name="name[]" er, som du selv er inde på, fuldt gyldig, i
modsætning til hvad folk måtte påstå :)
--
- Peter Brodersen

Jeppe Vesterbæk (03-07-2003)
Kommentar
Fra : Jeppe Vesterbæk


Dato : 03-07-03 18:30

> Ja, altid. id har ikke noget direkte med form-behandlingen at gøre.
>
> .. og name="name[]" er, som du selv er inde på, fuldt gyldig, i
> modsætning til hvad folk måtte påstå :)

Ok, mange tak for svaret ... så vil jeg blot fortsætte som påbegyndt :)

/Jeppe



Søg
Reklame
Statistik
Spørgsmål : 177519
Tips : 31968
Nyheder : 719565
Indlæg : 6408647
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste