/ 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
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 &lt;
> om til &gt;
& om til &amp;

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:

&lt;b&gt;a&lt;/b&gt;

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 &lt;
> > om til &gt;
> & om til &amp;
>
> 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:
>
> &lt;b&gt;a&lt;/b&gt;
>
> 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 &amp; (betyder &) eller &oslash; (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 &lt;
>> om til &gt;
> & om til &amp;

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="&quote;"> svarer jo til
at skrive <a href="""> og er dermed svarer <option value="&quot;"> 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="&quote;"> svarer
> jo til at skrive <a href="""> og er dermed svarer <option
> value="&quot;"> 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="&quote;"> svarer jo til
>at skrive <a href=""">

Nej, det er ikke det samme (og entity'en hedder &quot;).

At skrive <a href... svarer tilsvarende heller ikke til at skrive
&lt;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
> &lt;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

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

Månedens bedste
Årets bedste
Sidste års bedste