/ 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
værdier fra et <SELECT MULTIPLE> input
Fra : spam]@mail.dk (Bo Ra~


Dato : 08-08-01 11:28

Hvordan får jeg lige fat i de værdier der vælges via en
<SELECT MULTIPLY NAME="type">

??

Bo

 
 
Niels Andersen (08-08-2001)
Kommentar
Fra : Niels Andersen


Dato : 08-08-01 12:06

<bo.rattenborg[no spam]@mail.dk (Bo Rattenborg)> wrote in message
news:3b7113d0.11469366@sunsite.auc.dk...
> Hvordan får jeg lige fat i de værdier der vælges via en
> <SELECT MULTIPLY NAME="type">

Fro hver valgt værdi får php en "type=værdi", dvs. "type" blive sat flere
gange. Hver gang bliver værdien overskrevet, og det er dermed kun den sidste
der kan læses.

Det er det, der er problemet, ikke?

Der er to løsninger. Den nemme: Kald den "type[]" i stedet, så bliver det
til et array:

echo "Du har valgt disse typer:<br>\n";
foreach($type as $entype){
echo "o $entype<br>\n";
}

Alternativt kan du selv parse din querystring. Fx. ved at dele den ved hver
"&", så får du alle værdierne i par, som så bare skal smides i et array,
eller hvad du nu vil med dem.


Mvh.

Niels Andersen



spam]@mail.dk (Bo Ra~ (08-08-2001)
Kommentar
Fra : spam]@mail.dk (Bo Ra~


Dato : 08-08-01 14:24

>Der er to løsninger. Den nemme: Kald den "type[]" i stedet, så bliver det
>til et array:

øbs - den tror jeg hopper på - enkelt - vil det virke i alle
browsere ?

Bo

Niels Andersen (08-08-2001)
Kommentar
Fra : Niels Andersen


Dato : 08-08-01 16:42

<bo.rattenborg[no spam]@mail.dk (Bo Rattenborg)> wrote in message
news:3b713ce2.9486933@sunsite.auc.dk...
> >Der er to løsninger. Den nemme: Kald den "type[]" i stedet, så bliver det
> >til et array:
>
> øbs - den tror jeg hopper på - enkelt - vil det virke i alle
> browsere ?

Alle browsere, som kan håndtere navnet "type[]" - det skulle vist være alle.
:)


Mvh.

Niels Andersen



Christian Schmidt (08-08-2001)
Kommentar
Fra : Christian Schmidt


Dato : 08-08-01 23:21

Niels Andersen wrote:
>
> > >Der er to løsninger. Den nemme: Kald den "type[]" i stedet, så bliver det
> > >til et array:
> >
> > øbs - den tror jeg hopper på - enkelt - vil det virke i alle
> > browsere ?
>
> Alle browsere, som kan håndtere navnet "type[]" - det skulle vist være alle.
> :)

Tja, jeg har nu heller ikke mødt en, der ikke kunne.

Men det er ikke gyldig HTML 4.0 eller 4.01 :-/


Christian

Niels Andersen (09-08-2001)
Kommentar
Fra : Niels Andersen


Dato : 09-08-01 07:29

"Christian Schmidt" <christian@schmidt.net> wrote in message
news:3B71BB53.F8C1BF1B@schmidt.net...
> > Alle browsere, som kan håndtere navnet "type[]" - det skulle vist være
alle.
> > :)
> Tja, jeg har nu heller ikke mødt en, der ikke kunne.
> Men det er ikke gyldig HTML 4.0 eller 4.01 :-/

Bops, det var ikke godt. Kan du evt. pege på hvor det står?


Mvh.

Niels Andersen



Christian Schmidt (09-08-2001)
Kommentar
Fra : Christian Schmidt


Dato : 09-08-01 08:25

Niels Andersen wrote:
>
> > > Alle browsere, som kan håndtere navnet "type[]" - det skulle vist
> > > være alle. :)
> > Tja, jeg har nu heller ikke mødt en, der ikke kunne.
> > Men det er ikke gyldig HTML 4.0 eller 4.01 :-/
>
> Bops, det var ikke godt. Kan du evt. pege på hvor det står?

http://www.w3.org/TR/REC-html40/types.html#h-6.2

Citat: "ID and NAME tokens must begin with a letter ([A-Za-z]) and may
be followed by any number of letters, digits ([0-9]), hyphens ("-"),
underscores ("_"), colons (":"), and periods (".")."

Strengt taget står der jo ikke, at de ikke må indeholde andre tegn end
de nævnte, men mon ikke det skal forstås sådan.


Christian

Peter Brodersen (09-08-2001)
Kommentar
Fra : Peter Brodersen


Dato : 09-08-01 08:39

On Thu, 09 Aug 2001 09:24:53 +0200, Christian Schmidt
<christian@schmidt.net> wrote:

>http://www.w3.org/TR/REC-html40/types.html#h-6.2
>
>Citat: "ID and NAME tokens must begin with a letter ([A-Za-z]) and may
>be followed by any number of letters, digits ([0-9]), hyphens ("-"),
>underscores ("_"), colons (":"), and periods (".")."

(herunder skriver jeg elementer og attributter med småt, og
SGML-basis-typer med stort)

Men:
http://www.w3.org/TR/REC-html40/interact/forms.html#h-17.6

Som jeg ser det, er "name for select" af SGML-basis-typen CDATA, i
modsætning til at være ID, NAME, IDREF, IDREFS eller NUMBER (tabindex
er fx NUMBER, men name er altså CDATA).

"Navne-sammenfaldet" (høhø) er vilkårligt. "name" i <select
name="..."> referer altså ikke til at det er af SGML-typen "NAME"

Om CDATA er der bl.a. nævnt:
   CDATA is a sequence of characters from the document character
set and may include character entities.

Om NAME er der bl.a. nævnt:
   ID and NAME tokens must begin with a letter ([A-Za-z]) and may
be followed by any number of letters, digits ([0-9]), hyphens ("-"),
underscores ("_"), colons (":"), and periods (".").

Så jeg ser ikke noget problem i at have kode i stil med: <select
name="personer[]" multiple>

--
- Peter Brodersen

Christian Schmidt (09-08-2001)
Kommentar
Fra : Christian Schmidt


Dato : 09-08-01 21:56

Peter Brodersen wrote:
>
> >Citat: "ID and NAME tokens must begin with a letter ([A-Za-z]) and may
> >be followed by any number of letters, digits ([0-9]), hyphens ("-"),
> >underscores ("_"), colons (":"), and periods (".")."
>
> (herunder skriver jeg elementer og attributter med småt, og
> SGML-basis-typer med stort)
>
> Men:
> http://www.w3.org/TR/REC-html40/interact/forms.html#h-17.6
>
> Som jeg ser det, er "name for select" af SGML-basis-typen CDATA, i
> modsætning til at være ID, NAME, IDREF, IDREFS eller NUMBER (tabindex
> er fx NUMBER, men name er altså CDATA).
>
> "Navne-sammenfaldet" (høhø) er vilkårligt. "name" i <select
> name="..."> referer altså ikke til at det er af SGML-typen "NAME"
>
> Om CDATA er der bl.a. nævnt:
> CDATA is a sequence of characters from the document character
> set and may include character entities.
>
> Om NAME er der bl.a. nævnt:
> ID and NAME tokens must begin with a letter ([A-Za-z]) and may
> be followed by any number of letters, digits ([0-9]), hyphens ("-"),
> underscores ("_"), colons (":"), and periods (".").
>
> Så jeg ser ikke noget problem i at have kode i stil med: <select
> name="personer[]" multiple>

Det har du vist ret i.

Jeg mener dog bestemt, at jeg er blevet klandret af en HTML-validator
for at have brugt [] i name-attributten. Men det må så tilskrives en
fejl i HTML-validatoren.

Jeg trækker mig ydmygt ud af diskussionen


Christian

spam]@mail.dk (Bo Ra~ (10-08-2001)
Kommentar
Fra : spam]@mail.dk (Bo Ra~


Dato : 10-08-01 10:17

On Wed, 8 Aug 2001 17:42:06 +0200, "Niels Andersen"
<niels-usenet@myplace.dk> wrote:

><bo.rattenborg[no spam]@mail.dk (Bo Rattenborg)> wrote in message
>news:3b713ce2.9486933@sunsite.auc.dk...
>> >Der er to løsninger. Den nemme: Kald den "type[]" i stedet, så bliver det
>> >til et array:
>>
>> øbs - den tror jeg hopper på - enkelt - vil det virke i alle
>> browsere ?
>
>Alle browsere, som kan håndtere navnet "type[]" - det skulle vist være alle.

hmm ok nu er jg kommet videre via name="type[]"

men hvordan tjekkes denne nu via JavaScript ? if(form.type == false)
virker ikke, altså jeg ønsker at værdien inden den sendes til
serveren.

Bo

Niels Andersen (10-08-2001)
Kommentar
Fra : Niels Andersen


Dato : 10-08-01 13:08

<bo.rattenborg[no spam]@mail.dk (Bo Rattenborg)> wrote in message
news:3b73a5fd.8527702@sunsite.auc.dk...
> hmm ok nu er jg kommet videre via name="type[]"
>
> men hvordan tjekkes denne nu via JavaScript ? if(form.type == false)
> virker ikke, altså jeg ønsker at værdien inden den sendes til
> serveren.

Bare et skud fra hoften: Hvad med <select multiple name="type[]" id="type">
?

--
Mvh.

Niels Andersen



Christian Schmidt (11-08-2001)
Kommentar
Fra : Christian Schmidt


Dato : 11-08-01 20:54

Bo Rattenborg wrote:
>
> >Alle browsere, som kan håndtere navnet "type[]" - det skulle vist være alle.
>
> hmm ok nu er jg kommet videre via name="type[]"
>
> men hvordan tjekkes denne nu via JavaScript ? if(form.type == false)
> virker ikke, altså jeg ønsker at værdien inden den sendes til
> serveren.

Hvad er det, du forsøger at undersøge med ovenstående if-sætning?

Ud fra hukommelsen:

Selve select-elementet tilgås via form.elements['type[]']. Elementerne
ligger i arrayet form.elements['type[]'].options, og hvor vidt et enkelt
valgmulighed er valgt, kan checkes vha.
form.elements.['type[]'].options[i].selected, hvor i løber fra 0 til
form.elements.['type[]'].options.length - 1.


Christian


PS: Beklager hvis andre allerede har besvaret dette mere fyldestgørende.
Min newsserver har været offline et par dage, så den har vist endnu ikke
fået hentet alle indlæg ned.

Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408943
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste