|
| Presette form? Fra : Ukendt |
Dato : 17-01-03 18:48 |
|
Først tak til alle jer som gav sig tid til at svare på mit tidligere
spørgsmål.
Well nu vil jeg gerne lave en FORM som jeg kan presette!
Med andre ord så ønsker jeg nuligheden for vha. en variabel (eller flere) at
flytte SELECTED-funktionen rundt mellem valgmulighederne i nedenstående.
Er der nogen herinde som har en god idé til hvordan søren jeg gør det? Og vi
er jo i en PHP-gruppe såå......
<select name="test">
<option SELECTED value="ikke angivet">
Vælg et eller andet nedenforr</option>
<option>value="1">
Første valgmulighed</option>
<option value="2">
Anden valgmulighed</option>
</select>
På forhånd tak for hjælp og input
Claus
| |
Lars Dybdahl (17-01-2003)
| Kommentar Fra : Lars Dybdahl |
Dato : 17-01-03 19:05 |
|
"Claus Nygaard-Pedersen" <cnpatofir.dk> wrote:
> Well nu vil jeg gerne lave en FORM som jeg kan presette!
Lav en funktion:
function seloption ($defvalue,$value,$title) {
echo "<option ";
if ($defvalue==$value) echo "selected=\"selected\" "; // xhtml compliant
echo "value=\"".htmlspecialchars($value)."\">";
echo htmlspecialchars($title)."</option>\n";
}
$defvalue="2";
seloption ($defvalue,"1","Første valgmulighed");
seloption ($defvalue,"2","Anden valgmulighed");
seloption ($defvalue,"3","Tredje valgmulighed");
I øvrigt - når jeg nu kigger på ovenstående kode har jeg et lille spørgsmål
til resten af forum - hvordan angiver man en quote som værdi i en value=""?
Skal det url encodes?
Hilsen,
Lars.
--
Freelance programmør
Programmering mod timebetaling
| |
Ukendt (17-01-2003)
| Kommentar Fra : Ukendt |
Dato : 17-01-03 23:40 |
|
"Lars Dybdahl" <lars@dybdahl.dk> skrev i en meddelelse
news:3e2845c7$0$11043$edfadb0f@dread12.news.tele.dk...
> "Claus Nygaard-Pedersen" <cnpatofir.dk> wrote:
> > Well nu vil jeg gerne lave en FORM som jeg kan presette!
>
> Lav en funktion:
>
> function seloption ($defvalue,$value,$title) {
> echo "<option ";
> if ($defvalue==$value) echo "selected=\"selected\" "; // xhtml compliant
> echo "value=\"".htmlspecialchars($value)."\">";
> echo htmlspecialchars($title)."</option>\n";
> }
>
> $defvalue="2";
> seloption ($defvalue,"1","Første valgmulighed");
> seloption ($defvalue,"2","Anden valgmulighed");
> seloption ($defvalue,"3","Tredje valgmulighed");
Tusind tak Lars for et fremragende svar som ud over tilsyneladende at have
løst mit problem også har gjort mig opmærksom på endnu en måde at anvende
PHP & HTML (ja jeg kan se at du endda sværger til XHTML).
Som så mange andre gode svar efterlader dette mig dog med yderligere
spørgsmål:
Din brug af tegnene " og \ er lidt mystisk for mig men fordi jeg ved hvad
det skal ende op med kan jeg dog næsten regne ud hvilken funktion de har -
Kan du evt. henvise til et site eller en artikel som beskriver disse tegns
anvendelse?
Det der \n til sidst........ Hvad er det godt for?
Claus
| |
Jesper Brunholm (18-01-2003)
| Kommentar Fra : Jesper Brunholm |
Dato : 18-01-03 00:02 |
|
Claus Nygaard-Pedersen wrote:
> Din brug af tegnene " og \ er lidt mystisk for mig men fordi jeg ved hvad
> det skal ende op med kan jeg dog næsten regne ud hvilken funktion de har -
Ja - hvis man skal sætte et " i en string som er defineret med "'er så
er man nødt til at escape kontrollen/udførelsen af det. Det gøres
(ligesom man escaper andre tegn) med \.
> Kan du evt. henvise til et site eller en artikel som beskriver disse tegns
> anvendelse?
Er det i orden hvis jeg prøver?
http://us.php.net/manual/en/language.types.string.php
> Det der \n til sidst........ Hvad er det godt for?
det er et linieskift. I strings med "" bliver linieskift i koden ikke
overført til html-koden, så der må man sætte dem med \r\n (se igen siden
ovenfor). Hvis strengen derimod defineres med '' kan man nøjes med/må
man ty til \n
mvh
Jesper Brunholm
| |
Ukendt (18-01-2003)
| Kommentar Fra : Ukendt |
Dato : 18-01-03 00:19 |
|
"Jesper Brunholm" <nospam@brunholm-scharff.dk> skrev i en meddelelse
news:3e28888b$1@news.wineasy.se...
> Claus Nygaard-Pedersen wrote:
> > Din brug af tegnene " og \ er lidt mystisk for mig men fordi jeg ved
hvad
> > det skal ende op med kan jeg dog næsten regne ud hvilken funktion de
har -
>
> Ja - hvis man skal sætte et " i en string som er defineret med "'er så
> er man nødt til at escape kontrollen/udførelsen af det. Det gøres
> (ligesom man escaper andre tegn) med \.
>
>
> > Kan du evt. henvise til et site eller en artikel som beskriver disse
tegns
> > anvendelse?
>
> Er det i orden hvis jeg prøver?
>
> http://us.php.net/manual/en/language.types.string.php
>
> > Det der \n til sidst........ Hvad er det godt for?
>
> det er et linieskift. I strings med "" bliver linieskift i koden ikke
> overført til html-koden, så der må man sætte dem med \r\n (se igen siden
> ovenfor). Hvis strengen derimod defineres med '' kan man nøjes med/må
> man ty til \n
Tak for det gode svar Jesper!
Så mangler jeg vist bare at få læst op på funktionen htmlspecialchars som
forekommer mig lidt mystisk - Eller også er det bare fordi jeg aldrig helt
har kunnet forliges med den måde PHP manualen er skrevet på.
Claus
| |
Lars Dybdahl (18-01-2003)
| Kommentar Fra : Lars Dybdahl |
Dato : 18-01-03 01:42 |
|
"Claus Nygaard-Pedersen" <cnpatofir.dk> wrote:
> Så mangler jeg vist bare at få læst op på funktionen htmlspecialchars
Al tekst skal køres igennem htmlspecialchars inden det kommer på en webside.
Funktionen returner almindelig tekst som "Øllebrød" uændret, men den laver:
< om til <
> om til >
& om til &
Det er jo således, at <b>a</b> i html-filer betyder et a, der er fed, men
hvad nu hvis man ønsker at der skal stå <b>a</b> hos den, der ser på siden?
Så skriver man:
<b>a</b>
I stedet for at skrive ovenstående skriver man bare:
<?php echo htmlspecialchars("<b>a</b>"); ?>
Hilsen,
Lars.
--
Freelance programmør
Programmering mod timebetaling
| |
Ukendt (18-01-2003)
| Kommentar Fra : Ukendt |
Dato : 18-01-03 07:06 |
|
"Lars Dybdahl" <lars@dybdahl.dk> skrev i en meddelelse
news:3e28a2ac$0$10969$edfadb0f@dread12.news.tele.dk...
> "Claus Nygaard-Pedersen" <cnpatofir.dk> wrote:
> > Så mangler jeg vist bare at få læst op på funktionen htmlspecialchars
>
> Al tekst skal køres igennem htmlspecialchars inden det kommer på en
webside.
> Funktionen returner almindelig tekst som "Øllebrød" uændret, men den
laver:
>
> < om til <
> > om til >
> & om til &
>
> Det er jo således, at <b>a</b> i html-filer betyder et a, der er fed, men
> hvad nu hvis man ønsker at der skal stå <b>a</b> hos den, der ser på
siden?
> Så skriver man:
>
> <b>a</b>
>
> I stedet for at skrive ovenstående skriver man bare:
>
> <?php echo htmlspecialchars("<b>a</b>"); ?>
Glimragende forklaring og noget nemmere at gå til end den i manualen, synes
jeg!
Den funktion kan jeg vist bruge en del!
Takker Lars.
Claus
| |
Lars Dybdahl (18-01-2003)
| Kommentar Fra : Lars Dybdahl |
Dato : 18-01-03 11:30 |
|
"Claus Nygaard-Pedersen" <cnpatofir.dk> wrote:
> Glimragende forklaring og noget nemmere at gå til end den i manualen,
> synes jeg!
Jeg har lige prøvet at sammenligne min forklaring med den i manualen.
Umiddelbart kan jeg se følgende forskelle:
- Min er på dansk
- Jeg forsøger ikke at bruge ord som "html entities", som dog bør kendes når
man programmerer html
- Jeg har ikke forklaret det hele - der er nemlig mulighed for en ekstra
parameter.
En html entity er af formen & (betyder &) eller ø (betyder ø).
Hvis du prøver at glemme, at manualen måske fremtræder kompliceret, så vil
du lægge mærke til, at den faktisk ikke er kompliceret:
http://dk.php.net/manual/en/function.htmlspecialchars.php
Jeg har stort set al min grundlæggende php viden fra håndbogen.
Hilsen,
Lars.
--
Freelance programmør
Programmering mod timebetaling
| |
Niels Andersen (18-01-2003)
| Kommentar Fra : Niels Andersen |
Dato : 18-01-03 12:15 |
|
Lars Dybdahl wrote in <3e28a2ac$0$10969$edfadb0f@dread12.news.tele.dk>:
>> Så mangler jeg vist bare at få læst op på funktionen htmlspecialchars
> den laver:
>
> < om til <
>> om til >
> & om til &
Tilføjelse:
Se også min bemærkning om htmlspecialchars() og quotes andet sted her i
tråden.
--
Mvh.
Niels Andersen
http://myplace.dk/articles/getpost/?lang=da
| |
Niels Andersen (18-01-2003)
| Kommentar Fra : Niels Andersen |
Dato : 18-01-03 12:14 |
|
Jesper Brunholm wrote in <3e28888b$1@news.wineasy.se>:
>> Det der \n til sidst........ Hvad er det godt for?
> det er et linieskift. I strings med "" bliver linieskift i koden ikke
> overført til html-koden,
Jo.
> så der må man sætte dem med \r\n (se igen siden ovenfor).
Det kan man gøre. Laver man bare almindeligt linjeskift i PHP'en, så er
typen af linjeskift det, der bliver brugt i PHP-filen. Alternativt kan man
gøre som du nævner. Typerne er:
\r\n - Windows
\n - Unix
\r - Mac
> Hvis strengen derimod defineres med '' kan man nøjes med/må man ty til \n
Med single quotes kan man også fint lave helt almindelige linjeskift. Til
gengæld virker diverse escape-codes ikke. I single-quotes er det kun
single-qotes og backslashes man kan escape.
--
Mvh.
Niels Andersen
http://myplace.dk/articles/getpost/?lang=da
| |
Jesper Brunholm (18-01-2003)
| Kommentar Fra : Jesper Brunholm |
Dato : 18-01-03 14:05 |
|
Niels Andersen wrote:
>>Hvis strengen derimod defineres med '' kan man nøjes med/må man ty til \n
>
>
> Med single quotes kan man også fint lave helt almindelige linjeskift.
Det var egl det jeg ville skrive, det må have været for sent
/Jesper Brunholm
| |
Niels Andersen (18-01-2003)
| Kommentar Fra : Niels Andersen |
Dato : 18-01-03 12:11 |
|
Lars Dybdahl wrote in <3e2845c7$0$11043$edfadb0f@dread12.news.tele.dk>:
> echo "value=\"".htmlspecialchars($value)."\">";
[...]
> I øvrigt - når jeg nu kigger på ovenstående kode har jeg et lille
> spørgsmål til resten af forum - hvordan angiver man en quote som værdi i
> en value=""? Skal det url encodes?
Det skal selvfølgelig HTML-encodes, og det har du allerede gjort.
htmlspecialchars har en frivillig 2. parameter, som fortæller hvad den skal
gøre med quotes.
ENT_COMPAT - encode double quotes (standard)
ENT_QUOTES - encode både double og single quotes
ENT_NOQUOTES encoder ikke quotes
Double quote: "
Single quote: '
--
Mvh.
Niels Andersen
http://myplace.dk/articles/getpost/?lang=da
| |
Lars Dybdahl (18-01-2003)
| Kommentar Fra : Lars Dybdahl |
Dato : 18-01-03 13:59 |
|
Jeg er godt klar over dette - men at skrive <a href=""e;"> svarer jo til
at skrive <a href="""> og er dermed svarer <option value="""> vel også
til <option value="""> ?
Lars.
--
Freelance programmør
Programmering mod timebetaling
Niels Andersen wrote:
> Det skal selvfølgelig HTML-encodes, og det har du allerede gjort.
>
> htmlspecialchars har en frivillig 2. parameter, som fortæller hvad den
> skal gøre med quotes.
>
> ENT_COMPAT - encode double quotes (standard)
> ENT_QUOTES - encode både double og single quotes
> ENT_NOQUOTES encoder ikke quotes
>
> Double quote: "
> Single quote: '
>
| |
Thomas Lindgaard (18-01-2003)
| Kommentar Fra : Thomas Lindgaard |
Dato : 18-01-03 17:15 |
|
Lars Dybdahl <lars@dybdahl.dk> wrote in
news:3e294fa7$0$11036$edfadb0f@dread12.news.tele.dk:
> Jeg er godt klar over dette - men at skrive <a href=""e;"> svarer
> jo til at skrive <a href="""> og er dermed svarer <option
> value="""> vel ogs† til <option value="""> ?
Joh... men skal man så ikke bare bruge urlencode og urldecode?
Mvh.
/Thomas
| |
Peter Brodersen (18-01-2003)
| Kommentar Fra : Peter Brodersen |
Dato : 18-01-03 17:23 |
|
On Sat, 18 Jan 2003 13:59:28 +0100, Lars Dybdahl <lars@dybdahl.dk>
wrote:
>Jeg er godt klar over dette - men at skrive <a href=""e;"> svarer jo til
>at skrive <a href=""">
Nej, det er ikke det samme (og entity'en hedder ").
At skrive <a href... svarer tilsvarende heller ikke til at skrive
<a href...
--
- Peter Brodersen
| |
Lars Dybdahl (18-01-2003)
| Kommentar Fra : Lars Dybdahl |
Dato : 18-01-03 23:37 |
|
Peter Brodersen wrote:
> At skrive <a href... svarer tilsvarende heller ikke til at skrive
> <a href...
Så sandt, så sandt... en ren tanketorsk. Heldigvis er det standard opførsel
for htmlspecialchars også at konvertere " tegn, så min kode passer.
Lars.
--
Freelance programmør
Programmering mod timebetaling
| |
|
|