Bekijk Volledige Versie : dropdown menu PHP SQL
Hallo,
Ik probeer een 'drop down' menu (noem je dat zo?) te vullen met waarden uit
een database.
Ik heb nu het volgende geprobeerd maar dat geeft een parse error op regel
38:
Dit is de gebruikte code:
<SCRIPT LANGUAGE="JavaScript">
<!-- Begin
function formHandler(form){
var URL =
document.form.site.options[document.form.site.selectedIndex].value;
window.location.href = URL;
}
// End -->
</SCRIPT>
</head>
<body>
<form name="form">
<p align="left"><font color="#B00000" face="Verdana" size="2"><b>Aanbod in
de
gemeente:
</b></font><font color="#B00000" face="Verdana" size="3"><select name="site"
size=1>
<option value="#">Maak je keuze
<?php
$database_server = mysql_connect("localhost",
"", "");
mysql_select_db("", $database_server);
$sql = "SELECT DISTINCT PLAATS FROM DB9";
$resultaat = mysql_query($sql);
while ($record = mysql_fetch_object($resultaat)) {
<option value=#{$record->PLAATS}> {$record->PLAATS}
}
?>
<option value="#Zwijndrecht">Zwijndrecht</select><input type=button
value="Go!" onClick="javascript:formHandler(this)">
</form>
regel 37 begint hier:
while ($record = mysql_fetch_object($resultaat)) {
<option value=\"#{$record->PLAATS}\">{$record->PLAATS}
}
Wat doe ik hier niet goed?
Marcel
Maarten Wierda
16/11/04, 21:25
M@rcel wrote:
> Hallo,
Hoi,
> while ($record = mysql_fetch_object($resultaat)) {
> <option value=\"#{$record->PLAATS}\">{$record->PLAATS}
> }
>
> Wat doe ik hier niet goed?
Je vergeet dat dit HTML-code is.
<http://nl2.php.net/manual/en/function.print.php>
--
Cheers,
Maarten Wierda
"Maarten Wierda" <maartenAT@norecessDOT.com> schreef in bericht
news:cndnfk$mlj$1@nl-
> Hoi,
>
> > while ($record = mysql_fetch_object($resultaat)) {
> > <option value=\"#{$record->PLAATS}\">{$record->PLAATS}
> > }
> >
> > Wat doe ik hier niet goed?
>
> Je vergeet dat dit HTML-code is.
>
> <http://nl2.php.net/manual/en/function.print.php>
>
Bedankt voor de link, ben er uit!
Marcel
"M@rcel" <marcellagendijk@hotmail.com> schreef in bericht
news:cndtgq$4na$1@news2.solcon.nl...
> "Maarten Wierda" <maartenAT@norecessDOT.com> schreef in bericht
> > Hoi,
> >
> > > while ($record = mysql_fetch_object($resultaat)) {
> > > <option value=\"#{$record->PLAATS}\">{$record->PLAATS}
> > > }
> > >
> > > Wat doe ik hier niet goed?
> >
> > Je vergeet dat dit HTML-code is.
> >
> > <http://nl2.php.net/manual/en/function.print.php>
> >
>
> Bedankt voor de link, ben er uit!
Ik was er inderdaad uit maar heb nu het volgende probleem:
dit is het dropdown menu:
<form name="form1">
<p align="left"><font color="#B00000" face="Verdana" size="2"><b>Aanbod in
de
gemeente:
</b></font><font color="#B00000" face="Verdana" size="3"><select name="site"
size=1>
<option value="#">Maak je keuze
<option value="#Alblasserdam">Alblasserdam<option
value="#Barendrecht">Barendrecht<option value="#Groot Ammers">Groot
Ammers<option value="#Heerjansdam">Heerjansdam<option
value="#Heinenoord">Heinenoord<option value="#Hendrik Ido Ambacht">Hendrik
Ido Ambacht<option value="#Kinderdijk">Kinderdijk<option value="#Krimpen aan
den Lek">Krimpen aan den Lek<option value="#Noordhoek">Noordhoek<option
value="#Oostvoorne">Oostvoorne<option
value="#Papendrecht">Papendrecht<option
value="#Ridderkerk">Ridderkerk<option value="#Schiedam">Schiedam<option
value="#Sliedrecht">Sliedrecht<option
value="#Zwijndrecht">Zwijndrecht</select><input type=button value="Go!"
onClick="javascript:formHandler(this)">
</form>
Zoals je ziet zijn er sommige plaatsen met een spatie erin, dit werkt dan
niet in de pagina.
De pagina roept ze dan aan met het teken %20 (dat is op zich niet vreemd)
Dus ik dacht zet bij <A name="Hendrik%20Ido%20Ambacht" neer! En dan doet
hij het niet!
Overigens die Hendrik Ido Amacht heb ik handmatig in een database gezet en
die wordt ook opgeroepen als tekst binnen de pagina.
Hoe kan ik het dropdown menu ook laten werken voor plaatsen met een spatie?
alvast bedankt,
Marcel
M@rcel wrote:
> Zoals je ziet zijn er sommige plaatsen met een spatie erin, dit
> werkt dan niet in de pagina.
> De pagina roept ze dan aan met het teken %20 (dat is op zich niet
> vreemd)
>
> Dus ik dacht zet bij <A name="Hendrik%20Ido%20Ambacht" neer! En dan
> doet hij het niet!
> Overigens die Hendrik Ido Amacht heb ik handmatig in een database
> gezet en die wordt ook opgeroepen als tekst binnen de pagina.
>
> Hoe kan ik het dropdown menu ook laten werken voor plaatsen met een
> spatie?
Misschien door een underscore te gebruiken i.p.v. een spatie? Dus eh:
value="Hendrik_Ido_Ambacht" en name="Hendrik_Ido_Ambacht"
groet PietHein
"PietHein"
> M@rcel wrote:
>
> > Hoe kan ik het dropdown menu ook laten werken voor plaatsen met een
> > spatie?
> Misschien door een underscore te gebruiken i.p.v. een spatie? Dus eh:
> value="Hendrik_Ido_Ambacht" en name="Hendrik_Ido_Ambacht"
>
Ja maar dan krijg ik die ook in de tekst te zien, het gaat er om dat de
plaatsnaam uit de database wordt gevist en ook zichtbaar is op de site. En
Hendrik_Ido_Ambacht vind ik niet netjes op de site staan. (of
Krimpen_aan_den_Lek) En ook niet in het dropdown menu
groeten,
Marcel
Branko Collin
17/11/04, 13:05
"M@rcel" <marcellagendijk@hotmail.com>, you wrote on Wed, 17 Nov 2004
11:16:36 +0100:
>"PietHein"
>
>> M@rcel wrote:
>>
>> > Hoe kan ik het dropdown menu ook laten werken voor plaatsen met een
>> > spatie?
>> Misschien door een underscore te gebruiken i.p.v. een spatie? Dus eh:
>> value="Hendrik_Ido_Ambacht" en name="Hendrik_Ido_Ambacht"
>>
>
>Ja maar dan krijg ik die ook in de tekst te zien, het gaat er om dat de
>plaatsnaam uit de database wordt gevist en ook zichtbaar is op de site. En
>Hendrik_Ido_Ambacht vind ik niet netjes op de site staan. (of
>Krimpen_aan_den_Lek) En ook niet in het dropdown menu
Je kunt denk ik twee dingen doen:
1) Je gebruikt als OPTION VALUE een waarde die uniek is voor een
bepaalde plaatsnaam, die je veilig kunt gebruiken in een
attribuut-waarde, en die je ook uit de database haalt.
Als je tabel er bijvoorbeeld uitziet als:
Aerdenhout aer001
Amsterdam ams001
Hendrik Ido Ambacht hen001
Dan ziet je HTML eruit als:
<option name="city" value="aer001">Aerdenhout</option>
<option name="city" value="ams001">Amsterdam</option>
<option name="city" value="hen001">Hendrik Ido Ambacht</option>
(Voor die waarde kun je ook een bestaande unieke identifier gebruiken;
vaak gebruiken mensen een natuurlijk getal dat automatisch door de
SQL-database wordt opgehoogd. Hou er dan rekening mee dat in XHTML--en
andere XML-applicaties--een attribuutwaarde niet met een getal mag
beginnen. Plak er dan een lettertje voor.)
2) Je parseert de namen tot iets wat voor HTML acceptabel is. Verdiep
je in /regular expressions/, en kijk welke mogelijkheden PHP biedt om
met deze 'regexen' te werken biedt.
--
"Op dit tooverbedde heb ik geslapen, [...] en in minder dan een nacht
was ik genezen [...]. Maar sedert heeft Merlijn het geheim ontdekt
tooverbedden te maken, waar de gewonde ridder in minder dan zes
uren van zijne wonden geneest." -- L. Couperus, Het Zwevende Schaakbord
"Branko Collin" <collin@xs4all.nl> schreef in bericht
> >
> >Ja maar dan krijg ik die ook in de tekst te zien, het gaat er om dat de
> >plaatsnaam uit de database wordt gevist en ook zichtbaar is op de site.
En
> >Hendrik_Ido_Ambacht vind ik niet netjes op de site staan. (of
> >Krimpen_aan_den_Lek) En ook niet in het dropdown menu
>
> Je kunt denk ik twee dingen doen:
>
> 1) Je gebruikt als OPTION VALUE een waarde die uniek is voor een
> bepaalde plaatsnaam, die je veilig kunt gebruiken in een
> attribuut-waarde, en die je ook uit de database haalt.
Hier had ik ook aan zitten denken maar ik kan geen andere kolom gebruiken
jammer genoeg, tabel wordt bijna dagelijks bijgewerkt met verschillende
plaatsnamen door elkaar en heeft geen plaatsnaam specifieke eigenschappen.
> 2) Je parseert de namen tot iets wat voor HTML acceptabel is. Verdiep
> je in /regular expressions/, en kijk welke mogelijkheden PHP biedt om
> met deze 'regexen' te werken biedt.
Ik zal eens kijken of ik dit ga snappen & begrijpen. zijn er ergens
voorbeelden beschikbaar?
Marcel
"M@rcel" <marcellagendijk@hotmail.com> schreef in bericht
news:cnff37$8oe$1@news2.solcon.nl...
> "Branko Collin" <collin@xs4all.nl> schreef in bericht
> > 2) Je parseert de namen tot iets wat voor HTML acceptabel is. Verdiep
> > je in /regular expressions/, en kijk welke mogelijkheden PHP biedt om
> > met deze 'regexen' te werken biedt.
>
> Ik zal eens kijken of ik dit ga snappen & begrijpen. zijn er ergens
> voorbeelden beschikbaar?
Heb het opgelost met urlencode en het werkt nu!
groeten
Marcel
Daniel Tryba
18/11/04, 10:45
M@rcel <marcellagendijk@hotmail.com> wrote:
> dit is het dropdown menu:
>
> <form name="form1">
[snip]
> value="#Heinenoord">Heinenoord<option value="#Hendrik Ido Ambacht">Hendrik
> Ido Ambacht<option value="#Kinderdijk">Kinderdijk<option value="#Krimpen aan
> den Lek">Krimpen aan den Lek<option value="#Noordhoek">Noordhoek<option
> value="#Oostvoorne">Oostvoorne<option
[snip]
> Zoals je ziet zijn er sommige plaatsen met een spatie erin, dit werkt dan
> niet in de pagina.
> De pagina roept ze dan aan met het teken %20 (dat is op zich niet vreemd)
De pagina? Je bedoelt IE? Dat is zo ongeveer de enige browser die deze
fouten probeert te fixen IIRC.
> Dus ik dacht zet bij <A name="Hendrik%20Ido%20Ambacht" neer! En dan doet
> hij het niet!
> Overigens die Hendrik Ido Amacht heb ik handmatig in een database gezet en
> die wordt ook opgeroepen als tekst binnen de pagina.
>
> Hoe kan ik het dropdown menu ook laten werken voor plaatsen met een spatie?
Je menu is op dit moment van twijfelachtige kwaliteit. Als je iets met
variabelen doet in de URL dien je ervoor te zorgen dat die dingen
URL-encoded zijn om te voorkomen dat er zooi tussen staat. Staan er
overigens namen met bv "'" in de database? Het handigst lijkt me overigens
om whitespaces te weren en bv te vervangen door een '_'.
BTW een niet javascript afhankelijke fallback is natuurlijk ook verdomde
handig.