Hoe kan ik mijn PHP dropdown field werkend krijgen?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Engin C

Engin C

14/02/2012 17:31:18
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Ik heb nu een dropdown menu wat verbonden is met een database. Het opslaan van de gekozen waarde in de database gaat goed, maar wanneer ik de dropdown waarde weer wil veranderen moet de waarde die in de database staat dus als SELECTED weergeven worden in de dropdown.

Ik heb het volgende stukje code:

div class="form_row clearfix">
<label><?php _e(DISTANCETOSTATION_TEXT);?> </label>
<select name="proprty_distance_station" id="proprty_distance_station" class="select_s">

<option value="<?php echo $proprty_distance_station;?>" SELECTED><?php echo $proprty_distance_station;?></option>
<option value="Unknown">Unknown</option>
<option value="5+km">5+ km</option>
<option value="2-5km">2 - 5 km</option>
<option value="1-2km">1 - 2 km</option>
<option value="500-1000m">500 - 1.000 m</option>
<option value="200-500m">200 - 500 m</option>
<option value="0-200m">0 - 200 m</option>
</select>
</div>

Nu heb ik dus dat hij de SELECTED waarde uit de database haalt en boven aanzet maar dat wil ik niet. Ik wil dat hij de waarde in de dropdown markeert en als onthoude waarde weergeeft.

MISSCHIEN IS HET NIET HELEMAAL DUIDELIJK UITGELEGD, MAAR DMV DE BIJGEVOEGDE AFBEELDING IS MIJN PROBLEEM GELIJK DUIDELIJK

[img]http://www.freebits.nl/images/438help.png[/img]
Gewijzigd op 14/02/2012 18:07:09 door Engin C
 
PHP hulp

PHP hulp

16/05/2021 10:39:33
 
Maestro Roboroads

Maestro Roboroads

14/02/2012 17:38:30
Quote Anchor link
Je kan selected gebruiken in een option tag om die als geselecteerd aan te geven:
<option selected value="distance">200 - 500 m</option>

Edit; ik keek naar de afbeelding en niet naar de tekst. sorry.

je kan met een while alle opties nalopen en kijken of je optie daartussen zit?
Gewijzigd op 14/02/2012 17:40:01 door Maestro Roboroads
 
Reshad F

Reshad F

14/02/2012 17:53:03
Quote Anchor link
kan je misschien alles tussen [.code] [./code] zetten ( zonder de puntjes ) dan is het wat beter leesbaar voor iedereen :)
 
Engin C

Engin C

14/02/2012 18:07:39
Quote Anchor link
Ok heb het als code gezet.
Foto:

http://www.freebits.nl/images/438help.png
Gewijzigd op 14/02/2012 18:08:33 door Engin C
 
- SanThe -

- SanThe -

14/02/2012 18:16:21
Quote Anchor link
Amcuk siktir op 14/02/2012 18:07:39:
Ok heb het als code gezet.


Je hebt nu iets te veel tussen code tags gezet. De bedoeling is alleen je script.
 
Jaron T

Jaron T

14/02/2012 18:45:15
Quote Anchor link
een array maken met distances, vervolgens er door heen loopen en per item een <option> aanmaken. Indien het huidige element gelijk is aan $proprty_distance_station moet je het selected attribuut setten.
 
Engin C

Engin C

14/02/2012 21:19:28
Quote Anchor link
Ik heb het werkend gekregen, maar ik weet dat de kwaliteit van de code niet echt goed is. Heeft er iemand enig idee hoe ik deze code kan verbeteren/optimaliseren.
Het gaat dan vooral om de herhaling van de volgende code:

<option value="5+ km">5+ km</option>
<option value="2 - 5 km">2 - 5 km</option>
<option value="1 - 2 km">1 - 2 km</option>
<option value="500 - 1000 m">500 - 1.000 m</option>
<option value="200 - 500 m">200 - 500 m</option>
<option value="0 - 200 m">0 - 200 m</option>';

De bovenstaande code wordt elke keer opnieuw herhaald wat ik slecht vind, maar ik kan niet zo snel een alternatief verzinnen.


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
function get_proprty_distance_station_dl($proprty_distance_station)
{
        
    switch ($proprty_distance_station){
        case "":    
    echo '<option  value="Unknown">Unknown</option>
          <option value="5+ km">5+ km</option>
          <option value="2 - 5 km">2 - 5 km</option>
          <option value="1 - 2 km">1 - 2 km</option>
          <option value="500 - 1000 m">500 - 1.000 m</option>
          <option value="200 - 500 m">200 - 500 m</option>
          <option value="0 - 200 m">0 - 200 m</option>';    
          break;
            
    case "Unknown":
        echo '<option  value="Unknown" SELECTED>Unknown</option>
        <option value="5+ km">5+ km</option>
        <option value="2 - 5 km">2 - 5 km</option>
        <option value="1 - 2 km">1 - 2 km</option>
        <option value="500 - 1000 m">500 - 1.000 m</option>
        <option value="200 - 500 m">200 - 500 m</option>
        <option value="0 - 200 m">0 - 200 m</option>';    
        break;
    
    case "5+ km":
        echo '<option  value="Unknown">Unknown</option>
        <option value="5+ km" SELECTED>5+ km</option>
        <option value="2 - 5 km">2 - 5 km</option>
        <option value="1 - 2 km">1 - 2 km</option>
        <option value="500 - 1000 m">500 - 1.000 m</option>
        <option value="200 - 500 m">200 - 500 m</option>
        <option value="0 - 200 m">0 - 200 m</option>';    
        break;
        
    case "2 - 5 km":
        echo '<option  value="Unknown">Unknown</option>
        <option value="5+ km">5+ km</option>
        <option value="2 - 5 km" SELECTED>2 - 5 km</option>
        <option value="1 - 2 km">1 - 2 km</option>
        <option value="500 - 1000 m">500 - 1.000 m</option>
        <option value="200 - 500 m">200 - 500 m</option>
        <option value="0 - 200 m">0 - 200 m</option>';    
        break;
        
    case "1 - 2 km":
        echo '<option  value="Unknown">Unknown</option>
        <option value="5+ km">5+ km</option>
        <option value="2 - 5 km">2 - 5 km</option>
        <option value="1 - 2 km" SELECTED>1 - 2 km</option>
        <option value="500 - 1000 m">500 - 1.000 m</option>
        <option value="200 - 500 m">200 - 500 m</option>
        <option value="0 - 200 m">0 - 200 m</option>';    
        break;
        
    case "500 - 1000 m":
        echo '<option  value="Unknown">Unknown</option>
        <option value="5+ km">5+ km</option>
        <option value="2 - 5 km">2 - 5 km</option>
        <option value="1 - 2 km">1 - 2 km</option>
        <option value="500 - 1000 m" SELECTED>500 - 1.000 m</option>
        <option value="200 - 500 m">200 - 500 m</option>
        <option value="0 - 200 m">0 - 200 m</option>';    
        break;
        
    case "200 - 500 m":
       echo '<option  value="Unknown">Unknown</option>
        <option value="5+ km">5+ km</option>
        <option value="2 - 5 km">2 - 5 km</option>
        <option value="1 - 2 km">1 - 2 km</option>
        <option value="500 - 1000 m">500 - 1.000 m</option>
        <option value="200 - 500 m" SELECTED>200 - 500 m</option>
        <option value="0 - 200 m">0 - 200 m</option>';    
        break;
        
    case "0 - 200 m":
        echo '<option  value="Unknown">Unknown</option>
        <option value="5+ km">5+ km</option>
        <option value="2 - 5 km">2 - 5 km</option>
        <option value="1 - 2 km">1 - 2 km</option>
        <option value="500 - 1000 m">500 - 1.000 m</option>
        <option value="200 - 500 m">200 - 500 m</option>
        <option value="0 - 200 m" SELECTED>0 - 200 m</option>';    
        break;
}
}
Gewijzigd op 14/02/2012 21:39:09 door Engin C
 
- SanThe -

- SanThe -

14/02/2012 22:44:21
Quote Anchor link
Zelfde script alleen een beetje korter:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
function get_proprty_distance_station_dl($proprty_distance_station)
{

    $values = array(    "Unknown",
                        "5+ km",
                        "2 - 5 km",
                        "1 - 2 km",
                        "500 - 1000 m",
                        "200 - 500 m",
                        "0 - 200 m"
                    );
                    
    foreach($values as $value)
    {

        $selected = ($value == $proprty_distance_station) ? ' selected ' : '';
        echo '<option  value="' . $value . '"' . $selected . '>' . $value . '</option>';
    }
}

?>
Gewijzigd op 14/02/2012 22:47:07 door - SanThe -
 
Engin C

Engin C

14/02/2012 23:05:48
Quote Anchor link
haha lekker kort. Super bedankt voor jullie hulp allemaal! Scheelt weer een stuk aan overbodige code :) Zit pas in het eerste jaar van Technische Informatica, daarom ben ik nog niet zo ver :)

Toevoeging op 15/02/2012 13:24:14:

HOE KAN IK MIJN VRAAG SLUITEN, AANGEZIEN IK HET ANTWOORD AL GEKREGEN HEB?
 
Engin C

Engin C

17/02/2012 22:01:07
Quote Anchor link
Hoe kan ik hetzelfde doen, maar dan met leeftijd van 16 tm 100 jaar?
Ik wil dus de "Unknown", "5+", "2-5"...etc vervangen door 16,17,18 ........ tm 100 maar hoe kan ik dit het beste doen?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function get_proprty_minage_dl($proprty_minage)
{
    $values = array(    "Unknown",
                        "5+ km",
                        "2 - 5 km",
                        "1 - 2 km",
                        "500 - 1000 m",
                        "200 - 500 m",
                        "0 - 200 m"
                    );
                    
    foreach($values as $value)
    {
        $selected = ($value == $proprty_minage) ? ' selected ' : '';
        echo '<option  value="' . $value . '"' . $selected . '>' . $value . '</option>';
    }
}
 
- SanThe -

- SanThe -

17/02/2012 22:30:28
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
function get_proprty_distance_station_dl($proprty_distance_station)
{

    $values = array_merge(array("Unknown"), range(16,100));

    foreach($values as $value)
    {

        $selected = ($value == $proprty_distance_station) ? ' selected ' : '';
        echo '<option  value="' . $value . '"' . $selected . '>' . $value . '</option>';
    }
}

?>
 
Engin C

Engin C

17/02/2012 22:34:28
Quote Anchor link
Waarvoor dient "unknown" voor?

Toevoeging op 17/02/2012 23:01:27:

Ok snap het al die unknown is niet nodig, aangezien ik het bij 16 wil laten beginnen. Erg bedankt voor je hulp! :)
 
- SanThe -

- SanThe -

17/02/2012 23:41:18
Quote Anchor link
Dan doe je gewoon zo:
$values = range(16,100);
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.