[PHP/HTML] SELECTED waarde meegeven voor specifiek record

Pagina: 1
Acties:
  • 228 views

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Xanthium
  • Registratie: September 2005
  • Laatst online: 25-07 11:59
Ik zit hier al dagen mee te rommelen maar kom er maar niet uit; ik heb de volgende code om alle werknemers in de dropdown weer te geven;

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php

$sqlOptions = "SELECT voornaam, achternaam, id from werknemers ORDER BY voornaam";
$resultOptions = mysql_query($sqlOptions);

echo '<select name="werknemer"><option value="0">--Select--</option>';
while($opt = mysql_fetch_array($resultOptions))
{
echo '<option value="'.$opt['id'].'">'.$opt['voornaam'].' '.$opt['achternaam'].'</option>';
}
echo '</select>';

?>


Dit werkt allemaal prima bij input formuliertjes, alleen bij een record updaten word het moeilijk; ik wil dat er één waarde SELECTED meekrijgt zodat deze standaard geselecteerd is bij het openen van de pagina en dat deze ook dezelfde waarde behoud in de database als er geen wijzigingen worden gedaan. De werknemer ID die selected moet zijn staat in de tabel diensten. Hoe krijg ik dit voor elkaar? :?

Acties:
  • 0 Henk 'm!

  • marco_balk
  • Registratie: April 2001
  • Laatst online: 20-06 21:52
Haal de huidige waarde uit de database en vergelijk deze met de value van het veld. Als deze overeenkomen, zet je de tekst "selected='selected'" erbij:

Snel voorbeeld, kan veel netter:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php

$sqlOptions = "SELECT voornaam, achternaam, id from werknemers ORDER BY voornaam";
$resultOptions = mysql_query($sqlOptions);

echo '<select name="werknemer"><option value="0">--Select--</option>';
while($opt = mysql_fetch_array($resultOptions))
{
if ($value_from_db == $opt['id'])
    echo '<option value="'.$opt['id'].'" selected="selected">'.$opt['voornaam'].' '.$opt['achternaam'].'</option>';
else
    echo '<option value="'.$opt['id'].'">'.$opt['voornaam'].' '.$opt['achternaam'].'</option>';
}
echo '</select>';

?>

Acties:
  • 0 Henk 'm!

Verwijderd

marco_balk schreef op woensdag 07 april 2010 @ 13:44:
Haal de huidige waarde uit de database en vergelijk deze met de value van het veld. Als deze overeenkomen, zet je de tekst "selected='selected'" erbij:

Snel voorbeeld, kan veel netter:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php

$sqlOptions = "SELECT voornaam, achternaam, id from werknemers ORDER BY voornaam";
$resultOptions = mysql_query($sqlOptions);

echo '<select name="werknemer"><option value="0">--Select--</option>';
while($opt = mysql_fetch_array($resultOptions))
{
$value_from_db == $opt['id'] ? $sel = ' selected=selected'; : $sel ='';
    echo '<option value="'.$opt['id'].'"'.$sel.'>'.$opt['voornaam'].' '.$opt['achternaam'].'</option>';
}
echo '</select>';

?>

Acties:
  • 0 Henk 'm!

  • smesjz
  • Registratie: Juli 2002
  • Niet online
PHP:
1
$value_from_db == $opt['id'] ? $sel = ' selected=selected'; : $sel ='';


Dat bovenstaande gaat natuurlijk niet werken Shroompy. :)

Probeer iets als dit:

PHP:
1
$sel = ( $value_from_db == $opt['id'] ) ? "selected='selected'" : "";


Feit blijft wel dat de vraag van de TS heel triviaal is.

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Tsja, als je dagen zit te rommelen met het verzinnen van een oplossing voor een simpele conditionele echo, dan kun je beter even je PHP- of programmeerboek erbij pakken en nog even goed gaan lezen hoe programmeren werkt. Hier in Programming achten we je toch wel op zijn minst in staat om de basisbouwstenen van een programmeertaal (condities, loops, assignments, enz.) te gebruiken. Deze vraag had je dan ook prima zelf kunnen oplossen en daarom gaat dit topic dicht. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Dit topic is gesloten.