|  | 		    
					
    
        
            
                
                        
                
            
            
                
                | |  | Accepteret svar Fra :
  Nyhedsbruger |  Modtaget 100  point
 Dato :  12-12-01 17:05
 | 
 |  | 
 
                leifnel skrev:
 >
 > Af hensyn til den php, der behandler formen, hedder feltvariablene
 > felt[1], felt[2] osv.
 > 
 > Nu skal jeg i javascript lave en reference:
 > window.tal=document.form.felt[1], så et popup-vindue kan levere data
 > til det kaldende dokument.
 > 
 > Men javascript fortolker felt[1] som felt.1, og der findes ingen
 > variable, der hedder felt:
 Sæt et id på formularelementet:
 <input type='text' name='felt[]' id='input1'/>
 Brug så getElementById()-funktionen til at gøre noget ved 
 formularelementet:
 document.getElementById("input1").disabled = true
 -- 
 Jonas Koch Bentzen
http://understroem.dk/ |  |  | 
 | |  | Godkendelse af svar Fra :
  leifnel  | 
 Dato :  13-12-01 01:00
 | 
 |  | 
 
                Tak for svaret Jonas Koch Bentzen. Det virkede perfekt.
 Leif
                        
                
                
                 |  |  | 
 |  |  | 
 
                "leifnel" <leifnel.news@kandu.dk> wrote in message
 news:spJR7.6857$z4.895096@news000.worldonline.dk...
 > Af hensyn til den php, der behandler formen, hedder feltvariablene
 > felt[1], felt[2] osv.
 Dette er ikke af hensyn til PHP, men udelukkende hvis du vil benytte en
 indbygget convenience method. Der er absolut ingen grund til at benytte
 ulovlige tegn til at navngive dine elementer (brackets er ulovlige efter
 HTML4 standarden i NAME og ID attributer), lær at parse form headers i PHP
 og overhold standarderne.
 <URL: http://jibbering.com/faq/#FAQ4_25  >
 <URL: http://jscript.dk/faq/php.asp  >
 --
 Thor Larholm
 <URL: http://www.jibbering.com/faq/>  FAQ for comp.lang.javascript
                
                
                 |  |  | 
 |  |  | 
 
                On Sun, 16 Dec 2001 18:17:42 +0100, "Thor Larholm" <usenet@jscript.dk>
 wrote:
 >Der er absolut ingen grund til at benytte
 >ulovlige tegn til at navngive dine elementer (brackets er ulovlige efter
 >HTML4 standarden i NAME og ID attributer), lær at parse form headers i PHP
 >og overhold standarderne.
 Mit råd er så: Brug standarderne og læs tilbage i denne nyhedsgruppe
 ;)
 "name" i input, button, select, m.m. er af SGML-basis-typen CDATA,
 _ikke_ af SGML-basis-typen NAME.
 "id" er rigtigtnok af SGML-basis-typen NAME, men såvidt, jeg kan se,
 henvises der blot til at "feltvariablerne" (underforstået værdien til
 "name"-attributten) hedder noget med [..]. Og det er ganske enkelt
 ikke ulovligt.
 <news:x5rc7.762$uI6.66466@news000.worldonline.dk>
http://www.w3.org/TR/REC-html40/interact/forms.html Misforståelsen stammer selvfølgelig i "navne-sammenfaldet" (no pun) i
 attributten "name" og SGML-basis-typen NAME.
 For en god ordens skyld bør det nævnes, at det samme er tilfældet i
 XHTML1.0:
http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd <!ELEMENT input EMPTY>     <!-- form control -->
 <!ATTLIST input
 [..]
   name        CDATA          #IMPLIED
 [..]
   >
 At det så på nogle punkter kan give uhensigtsmæssigheder, er så en
 anden sag. Men det er synd at anklage det for ikke at overholde
 standarderne.
 -- 
 - Peter Brodersen
   24 Days of Crashmas - julekalender:
  http://jul.bums.dk/ |  |  | 
 |  |  | 
 
                "Peter Brodersen" <professionel@nerd.dk> wrote in message
 news:3Y5T7.4613$Q3.710913@news010.worldonline.dk...
 > Mit råd er så: Brug standarderne og læs tilbage i denne nyhedsgruppe
 > ;)
 Fra <URL: http://www.w3.org/TR/html401/types.html#type-id  >
 <QUOTE>
 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 (".").
 </QUOTE>
 [ og ] kan ikke bruges i NAME og ID attributer i HTML 4.
 > For en god ordens skyld bør det nævnes, at det samme er tilfældet i
 > XHTML1.0:
 > http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd >
 > <!ELEMENT input EMPTY>     <!-- form control -->
 > <!ATTLIST input
 > [..]
 >   name        CDATA          #IMPLIED
 > [..]
 Samtidig bør der dog kigges på
     <URL: http://www.w3.org/TR/xhtml1/#guidelines  >
 under "C.8 Fragment Identifiers", hvor vi finder
 <QUOTE>
 Further, since the set of legal values for attributes of type ID is much
 smaller than for those of type CDATA, the type of the name attribute has
 been changed to NMTOKEN. This attribute is constrained such that it can only
 have the same values as type ID, or as the Name production in XML 1.0
 Section 2.5, production 5.
 </QUOTE>
 Fra <URL: http://www.w3.org/TR/2000/REC-xml-20001006#NT-Name  > kan vi se at
 NMTOKEN, som NAME og ID attributer i HTML4, kun kan indeholde tal,
 bogstaver, -, _, : og ., ikke [ eller ].
 > At det så på nogle punkter kan give uhensigtsmæssigheder, er så en
 > anden sag. Men det er synd at anklage det for ikke at overholde
 > standarderne.
 Jeg nævnte specifikt at det ikke overholdt HTML 4 standarden, hvilket det
 ikke gør ;)
 Det vil selvf. være i orden i XHTML strict, men når det nu både er i
 modsætning til HTML4 standarden samt XHTML HTML Compatibility Guidelines og
 derudover vil give syntax-fejl i JS hvis man ikke tager højde for det .. så
 kan man lige så godt lære at parse form headers selv istedet for at bero på
 en convenience funktion i PHP.
 --
 Thor Larholm
 <URL: http://www.jibbering.com/faq/>  FAQ for comp.lang.javascript
                
                
                 |  |  | 
 |  |  | 
 
                On Sun, 16 Dec 2001 21:06:16 +0100, "Thor Larholm" <usenet@jscript.dk>
 wrote:
 >Fra <URL: http://www.w3.org/TR/html401/types.html#type-id  >
 ><QUOTE>
 >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 (".").
 ></QUOTE>
 ID og NAME er her SGML-typer; der henvises ikke til attribut-navne.
 >[ og ] kan ikke bruges i NAME og ID attributer i HTML 4.
 Vi taler altså ikke om "id", men "name", som fx:
 <input type="text" name="vare[]">
 Det er ikke forkert, da værdien til name skal være af typen CNAME.
http://www.w3.org/TR/REC-html40/interact/forms.html#h-17.4 <!ATTLIST INPUT
 [..]
   name        CDATA          #IMPLIED  -- submit as part of form --
 [..]
   >
 Længere er den altså ikke. Vi er enige om at der står "CDATA" ud for
 sgml-type, og ikke "NAME", ikke sandt?
 >Samtidig bør der dog kigges på
 >    <URL: http://www.w3.org/TR/xhtml1/#guidelines  >
 >under "C.8 Fragment Identifiers", hvor vi finder
 Igen, vi snakker ikke om id (kun i Jonas' løsningsforslag, hvor []
 ikke har været på tale), men om name.
 >> At det så på nogle punkter kan give uhensigtsmæssigheder, er så en
 >> anden sag. Men det er synd at anklage det for ikke at overholde
 >> standarderne.
 >Jeg nævnte specifikt at det ikke overholdt HTML 4 standarden, hvilket det
 >ikke gør ;)
 Beklager, men det gør det, jf. ovenstående.
 Check fx:
http://stock.ter.dk/html4.php
http://validator.w3.org/check?uri=http%3A%2F%2Fstock.ter.dk%2Fhtml4.php&charset=%28detect+automatically%29&doctype=Inline
http://www.htmlhelp.com/cgi-bin/validate.cgi?url=http://stock.ter.dk/html4.php&input=yes Den validerer uden problemer i HTML 4.01 Strict, og den indeholder
 bl.a. følgende:
 <input type="text" name="vare[]">
 Vi er ikke uenige om at det ikke er hensigtsmæssigt at bruge, hvis man
 vil lave js-kald på indholdet af dette felt, men du bør ikke kalde det
 forkert, når det er 100% gyldig HTML.
 -- 
 - Peter Brodersen
   24 Days of Crashmas - julekalender:
  http://jul.bums.dk/ |  |  | 
 | |  | Kommentar Fra :
  leifnel  | 
 Dato :  17-12-01 04:54
 | 
 |  | 
 
                "Thor Larholm" skrev d. 16-12-01 18:18 dette indlæg :
 > "leifnel" <leifnel.news@kandu.dk> wrote in message
 > news:spJR7.6857$z4.895096@news000.worldonline.dk...
 > > Af hensyn til den php, der behandler formen, hedder feltvariablene
 > > felt[1], felt[2] osv.
 > 
 > Dette er ikke af hensyn til PHP, men udelukkende hvis du vil benytte en
 > indbygget convenience method. Der er absolut ingen grund til at benytte
 > ulovlige tegn til at navngive dine elementer (brackets er ulovlige efter
 > HTML4 standarden i NAME og ID attributer), lær at parse form headers i PHP
 > og overhold standarderne.
 > 
 Ok, så kom med en efter din mening lovlig løsning på dette:
 Et sql-query returnerer et variabelt antal rækker (nøgle og værdi)
 Alle disse rækker skal kunne redigeres samtidig (ikke noget med en submit-knap pr række)
 Jeg laver en form:
 <form action=post.php>
 <input type=hidden name=numrows value=7>
 <input type=hidden name=key[1] value=1234><input type=text name=val[1] value=2345>
 <input type=hidden name=key[2] value=1234><input type=text name=val[2] value=2345>
 ...
 <input type=submit>
 I post.php:
   $query="replace into tabel (key,value) values "
 for ($n=1;$n<=$numrows;$n++) {
   $query.="($key[$n],$val[$n])";
 };
 Leif
                
                
                 |  |  | 
 |  |  | 
 
                On Mon, 17 Dec 2001 03:54:11 GMT, "leifnel" <leifnel.news@kandu.dk>
 wrote:
 ><input type=hidden name=key[1] value=1234><input type=text name=val[1]
 >value=2345>
 Du bør blot have "" rundt om key[1] og val[1], fx:
 <input type=hidden name="key[1]" value=1234><input type=text
 name="val[1]" value=2345>
 .... men ellers er det gyldigt nok. Hvis du dog vil forsøge at tilgå
 dataen, bør du så fx bruge getElementById()
 Dog, hvad angår hidden-felter, kan du overføre dataen på andre måder.
 Fx ved brug af serialize() og unserialize() i PHP'en.
 Men selvom [..] var ulovlig at bruge, ville man blot kunne lave sit
 eget hjemmebryg, fx ved at kalde variablerne for variabel1, variabel2,
 variabel3, etc. - og så i sit PHP-script ræse $HTTP_GET_VARS-array'et
 igennem og selv trække variabler ud og omdanne det til et array.
 Der er intet galt i internt at behandle data, før man ender op med en
 eller anden query.
 -- 
 - Peter Brodersen
   24 Days of Crashmas - julekalender:
  http://jul.bums.dk/ |  |  | 
 |  |  | 
 
                "Peter Brodersen" <professionel@nerd.dk> wrote in message
 news:D6eT7.4831$Q3.749306@news010.worldonline.dk...
 > Men selvom [..] var ulovlig at bruge, ville man blot kunne lave sit
 > eget hjemmebryg, fx ved at kalde variablerne for variabel1, variabel2,
 > variabel3, etc. - og så i sit PHP-script ræse $HTTP_GET_VARS-array'et
 > igennem og selv trække variabler ud og omdanne det til et array.
 Se, det er netop dette jeg ville pointere - at man godt selv kan parse form
 headers. De fleste PHP programmører tror at man _kun_ kan bruge den
 automatisk form parsing, og kender ikke noget til f.eks. $HTTP_POST_VARS (og
 hvad de ellers hedder, bruger ikke PHP til dagligt).
 --
 Thor Larholm
 <URL: http://www.jibbering.com/faq/>  FAQ for comp.lang.javascript
                
                
                 |  |  | 
 |  |  | 
 
                On Thu, 20 Dec 2001 05:05:21 +0100, "Thor Larholm" <usenet@jscript.dk>
 wrote:
 >Se, det er netop dette jeg ville pointere - at man godt selv kan parse form
 >headers.
 .... men retter du ikke alligevel http://jscript.dk/faq/php.asp  til?
 Der er ingen grund til at sprede mere forvirring til på det punkt.
 (opsummeret: det afsnit, der quote's på den side, handler om ID- og
 NAME-definitionerne i SGML - ikke om hvad, id- og name-attributterne
 ved diverse html-elementer må indeholder af tegn)
 Som sagt er jeg ikke uenig i at det er uhensigtsmæssige navne, såfremt
 man forsøger at lege med JavaScript - og ikke gider bruge den noget
 mere sexede getElementById() - men der er ingen grund til at kalde det
 ugyldig HTML, når det ikke er det.
 -- 
 - Peter Brodersen
   24 Days of Crashmas - julekalender:
  http://jul.bums.dk/ |  |  | 
 |  |  | 
 
                "Peter Brodersen" <professionel@nerd.dk> wrote in message
 news:hQvU7.1311$Zm5.190205@news000.worldonline.dk...
 > On Thu, 20 Dec 2001 05:05:21 +0100, "Thor Larholm" <usenet@jscript.dk>
 > wrote:
 >
 > >Se, det er netop dette jeg ville pointere - at man godt selv kan parse
 form
 > >headers.
 >
 > ... men retter du ikke alligevel http://jscript.dk/faq/php.asp  til?
 Jeg retter den til senere i dag når jeg kommer på arbejde.
 > Der er ingen grund til at sprede mere forvirring til på det punkt.
 >
 > (opsummeret: det afsnit, der quote's på den side, handler om ID- og
 > NAME-definitionerne i SGML - ikke om hvad, id- og name-attributterne
 > ved diverse html-elementer må indeholder af tegn)
 Som nævnt før, så er det ulovligt i HTML4 - jeg retter siden til så det
 fremgår at dette er tilladt i XHTML (nok en god idé, CLJ FAQ'en linker til
 den og vi vil jo ikke forvirre folk).
 > Som sagt er jeg ikke uenig i at det er uhensigtsmæssige navne, såfremt
 > man forsøger at lege med JavaScript - og ikke gider bruge den noget
 > mere sexede getElementById() - men der er ingen grund til at kalde det
 > ugyldig HTML, når det ikke er det.
 Man kan nu sagtens referere til elementet med DOM0 og dermed understøtte
 NS2+/IE3+:
 document.forms["formNavn"].elements["phpelement[][][][]][[][]"].value;
 --
 Thor Larholm
 <URL: http://www.jibbering.com/faq/>  FAQ for comp.lang.javascript
                
                
                 |  |  | 
 | |  | Kommentar Fra :
  leifnel  | 
 Dato :  21-12-01 19:37
 | 
 |  | 
 
                "Thor Larholm" skrev d. 21-12-01 08:21 dette indlæg :
 > "Peter Brodersen" <professionel@nerd.dk> wrote in message
 > news:hQvU7.1311$Zm5.190205@news000.worldonline.dk...
 > > On Thu, 20 Dec 2001 05:05:21 +0100, "Thor Larholm" <usenet@jscript.dk>
 > > wrote:
 > >
 > > >Se, det er netop dette jeg ville pointere - at man godt selv kan parse
 > form
 > > >headers.
 > >
 > > ... men retter du ikke alligevel http://jscript.dk/faq/php.asp  til?
 > 
 > Jeg retter den til senere i dag når jeg kommer på arbejde.
 > 
 <citat src=http://jscript.dk/faq/php.asp> Solution ? Give your form elements legal names, MySelect instead of MySelect[], 
 and learn to parse form headers, dammit! (hint: read the manual about expand)
 </citat>
 
 <citat src=http://www.php.net/search.php> 2 documents match your search for 'expand' in the PHP Web site:
 ... the manual (tar.gz, tar.bz2 and zip) don't contain any directories, so all of the files will be dumped into your current working directory when you expand the archive unless the tool you use does otherwise.  
 </citat>
 Hvad vil du foreslå man læser?
 Leif
                
                
                 |  |  | 
 |  |  | 
 
                "leifnel" <leifnel.news@kandu.dk> wrote in message
 news:McLU7.1622$aS.249903@news010.worldonline.dk...
 > "Thor Larholm" skrev d. 21-12-01 08:21 dette indlæg :
 > > Jeg retter den til senere i dag når jeg kommer på arbejde.
 > >
 > <citat src=http://jscript.dk/faq/php.asp> > Solution ? Give your form elements legal names, MySelect instead of
 > MySelect[],
 > and learn to parse form headers, dammit! (hint: read the manual about
 > expand)
 > </citat>
 >
 > <citat src=http://www.php.net/search.php> > 2 documents match your search for 'expand' in the PHP Web site:
 > .. the manual (tar.gz, tar.bz2 and zip) don't contain any directories,
 > so all of the files will be dumped into your current working directory
 > when you expand the archive unless the tool you use does otherwise.
 > </citat>
 >
 > Hvad vil du foreslå man læser?
 Jeg vil foreslå at man læser expand og $HTTP_GET_VARS, $HTTP_POST_VARS.
 Det ovenstående var skrevet på 2 minutter, efter at 40 forskellige personer
 på under 24 timer havde spurgt på #Javascript (EFNet) hvordan de skulle
 referere deres sjove form-elementer. Det eneste de havde at sige på #PHP var
 "expand $HTTP_GET_VARS", efter at resten havde brugt en halv time på at
 påstå at man ikke kunne parse form headers selv i PHP og at man blev nødt
 til at bruge den automatiske parsing (*suk*).
 Så ja, tonen er måske lidt hård i php.asp, men jeg var lettere irriteret på
 "those PHP-people".
 --
 Thor Larholm
 <URL: http://www.jibbering.com/faq/>  FAQ for comp.lang.javascript
                
                
                 |  |  | 
 | |  | Du har følgende muligheder |  | 
 |  | 
            
               
                    Eftersom du ikke er logget ind i systemet, kan du ikke skrive et indlæg til dette spørgsmål.
 Hvis du ikke allerede er registreret, kan du gratis blive medlem, ved at trykke på "Bliv medlem" ude i menuen.
 |  |  | 
 |  |