[php] "selected" bij de juiste "option"

Pagina: 1
Acties:

  • irondog
  • Registratie: Januari 2001
  • Laatst online: 11-05-2025

irondog

alle dingen moeten onzin zijn

Topicstarter
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
<?
if ($gar==0)
   echo " 
     <td><select size=\"1\" name=\"gar\">
    <option value=\"0\" label=\"1\" selected>geen</option>
    <option value=\"3\" label=\"3\">3 maanden</option>
    <option value=\"6\" label=\"6\">6 maanden</option>
    <option value=\"12\" label=\"12\">12 maanden</option>
  </select></td></tr>";
if ($gar==3)
etc.
etc.
?>

Ik wil uit de database kunnen hale welk van de vier opties "selected" is, zónder gigantisch veel if statements te gebruiken. Ik heb ooit geweten hoe dit kan, maar ik ben het :( :r :'( weer vergeten.

In dit geval is 4 if-statements niet zo erg, maar als ik 25 options had wél.

Ik heb het niet in de html handleiding kunnen lezen. Maar ik weet zeker dat het kan.

[P5B deluxe] [Core2Duo 6300] [2 X 1GB DDR2] [GF FX7300] [320 GB WD] [Gentoo] [VISTA]


  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 14-09 17:42

Gerco

Professional Newbie

"<option>" schrijven in een for loopje met 1 "if" erbij, werkt hier altijd prima.

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


  • irondog
  • Registratie: Januari 2001
  • Laatst online: 11-05-2025

irondog

alle dingen moeten onzin zijn

Topicstarter
Op woensdag 12 december 2001 09:26 schreef Gerco het volgende:
"<option>" schrijven in een for loopje met 1 "if" erbij, werkt hier altijd prima.
Nee, nee. Ik wil iets in de éérste regel van mijn <select></select>, wat aangeeft welke optie geselecteerd is.

[P5B deluxe] [Core2Duo 6300] [2 X 1GB DDR2] [GF FX7300] [320 GB WD] [Gentoo] [VISTA]


  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 14-09 17:42

Gerco

Professional Newbie

Op woensdag 12 december 2001 09:30 schreef irondog het volgende:

[..]

Nee, nee. Ik wil iets in de éérste regel van mijn <select></select>, wat aangeeft welke optie geselecteerd is.
Voor zover ik weet is dat niet mogelijk. Maar goed, ik ben ook geen html guru. Vraag het eens in W&G zou ik zeggen.

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


  • goalgetter
  • Registratie: Juni 1999
  • Laatst online: 25-08 15:24
Volgens mij is dat niet mogelijk, maar als je het zeker wil weten moet je maar even gaan zoeken op www.w3c.org bij de HTML specs.

Even iets anders... volgens mij is dit geen php vraag maar een HTML vraag -> W&G

  • Annie
  • Registratie: Juni 1999
  • Laatst online: 25-11-2021

Annie

amateur megalomaan

html heeft bij mijn weten geen mogelijkheid om binnen de <select> aan te geven welke geselecteerd moet zijn (behalve dan de selected parameter van een <option>).
Dus je zal of met een for-loopje de options moeten vullen (zoals al gezegd). Of na de <select> een stukje javascript moeten zetten wat de juiste option selecteerd.

For-loop optie lijkt mij het simpelst.

Today's subliminal thought is:


  • chem
  • Registratie: Oktober 2000
  • Laatst online: 27-08 13:53

chem

Reist de wereld rond

dat kan dus niet, bij de select aangeven wat de checked/selected items zijn.

Klaar voor een nieuwe uitdaging.


  • RdeTuinman
  • Registratie: Mei 2001
  • Laatst online: 16-08 07:25
Makkelijkste vind ik:
PHP:
1
2
3
<?
printf ("<OPTION VALUE=\"$waarde\"%s>$naam</OPTION>",($gar == $waarde)?" SELECTED":"");
?>

Dan kun je gewoon 1 regel gebruiken. Als $gar gelijk is aan $waarde dan wordt deze SELECTED en anders niet.

Uiteraard wel in een for of while loopje ;)

  • Pelle
  • Registratie: Januari 2001
  • Laatst online: 18:23

Pelle

🚴‍♂️

* Pelle doet het altijd zo
PHP:
1
2
3
4
5
6
<?
while ($rBlaat = mysql_fetch_array($qBlaat)) {
    $selected = ($rBlaat["id"] == $waarde) ? " selected>" : ">";
    print "<option value=\"" . $rBlaat["id"] . "\"" . $selected . $rBlaat["naam"];
}
?>

Maare, in de select aangeven welke selected moet zijn? Hmm, ik weet niet of het onLoad-event ook op een <select> van toepassing is, maar als dat wel het geval is dan kun je met JS het goeie item selecteren. Beetje omslachtig alleen, zeker als je je code toch met PHP parst.

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Op woensdag 12 december 2001 11:28 schreef Pelle het volgende:
* Pelle doet het altijd zo
PHP:
1
2
3
4
5
6
<?
while ($rBlaat = mysql_fetch_array($qBlaat)) {
    $selected = ($rBlaat["id"] == $waarde) ? " selected>" : ">";
    print "<option value=\"" . $rBlaat["id"] . "\"" . $selected . $rBlaat["naam"];
}
?>

Maare, in de select aangeven welke selected moet zijn? Hmm, ik weet niet of het onLoad-event ook op een <select> van toepassing is, maar als dat wel het geval is dan kun je met JS het goeie item selecteren. Beetje omslachtig alleen, zeker als je je code toch met PHP parst.
Lijkt mij ook een beetje onzin, jah...

Pelle: heerlijk he, die ( a ? b : c ) expressies :P

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • Pelle
  • Registratie: Januari 2001
  • Laatst online: 18:23

Pelle

🚴‍♂️

Op woensdag 12 december 2001 11:41 schreef drm het volgende:
Pelle: heerlijk he, die ( a ? b : c ) expressies :P
Can't live without them 'nymore :)

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op woensdag 12 december 2001 11:57 schreef Pelle het volgende:
Can't live without them 'nymore :)
Vaak komt het de duidelijkheid van de source niet ten goede ;)

En dat is een van de redenen dat ik vrijwel altijd met if constructies werk.

  • irondog
  • Registratie: Januari 2001
  • Laatst online: 11-05-2025

irondog

alle dingen moeten onzin zijn

Topicstarter
Op woensdag 12 december 2001 11:16 schreef RdeTuinman het volgende:
Makkelijkste vind ik:
PHP:
1
2
3
<?
printf ("<OPTION VALUE=\"$waarde\"%s>$naam</OPTION>",($gar == $waarde)?" SELECTED":"");
?>

Dan kun je gewoon 1 regel gebruiken. Als $gar gelijk is aan $waarde dan wordt deze SELECTED en anders niet.

Uiteraard wel in een for of while loopje ;)
Als het niet geselecteerd kan worden op de eerste regel :'( dan is dit de makkelijkste oplossing in mijn ogen.
Op woensdag 12 december 2001 11:28 schreef Pelle het volgende:
* Pelle doet het altijd zo
PHP:
1
2
3
4
5
6
<?
while ($rBlaat = mysql_fetch_array($qBlaat)) {
    $selected = ($rBlaat["id"] == $waarde) ? " selected>" : ">";
    print "<option value=\"" . $rBlaat["id"] . "\"" . $selected . $rBlaat["naam"];
}
?>

Maare, in de select aangeven welke selected moet zijn? Hmm, ik weet niet of het onLoad-event ook op een <select> van toepassing is, maar als dat wel het geval is dan kun je met JS het goeie item selecteren. Beetje omslachtig alleen, zeker als je je code toch met PHP parst.
Kun je me dit stukje ff uitleggen? Ik begrijp het vraagtekentje niet.

[P5B deluxe] [Core2Duo 6300] [2 X 1GB DDR2] [GF FX7300] [320 GB WD] [Gentoo] [VISTA]


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Op woensdag 12 december 2001 12:00 schreef ACM het volgende:

[..]

Vaak komt het de duidelijkheid van de source niet ten goede ;)

En dat is een van de redenen dat ik vrijwel altijd met if constructies werk.
Ligt er maar net aan wat je gewend bent te lezen.

Bij langere expressies doe ik het meestal zo:
PHP:
1
2
3
4
5
6
<?
$var = 
     ( dit is dus een lange expressie )
   ? waardetrue
   : waardefalse;
?>

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • Pelle
  • Registratie: Januari 2001
  • Laatst online: 18:23

Pelle

🚴‍♂️

Op woensdag 12 december 2001 12:23 schreef irondog het volgende:
Kun je me dit stukje ff uitleggen? Ik begrijp het vraagtekentje niet.
Dit:
code:
1
a = (b) ? c : d;

Wil zeggen:
Als b waar is, dan krijgt a de waarde c, en anders de waarde d.

Voorbeeldje:
code:
1
2
b = 5;
a = (b == (10/2)) ? "b is 10 delen door 2" : "b was geen vijf";

Er wordt nu gechecked of b gelijk is aan 10/2. Is die expressie waar, dan krijgt a de waarde "b is 10 delen door 2". Is die expressie onwaar, dan krijgt variabele a de waarde "b was geen vijf".

Très simple.
Pagina: 1