Chained Select Value
Ik heb even een vraagje. Ik ben momenteel bezig met een simpel formulier met een "chained selects" erin. Nu gebruik ik binnen een option de value waarde om de volgende select aan te sturen.
Nu is het probleem dat als ik het formulier invul en hem opstuur ik de value waardes te zien krijg en niet de tekst die hij weergeeft bij het invullen van het formulier.
Is er een mogelijkheid om niet de value te kiezen maar de weergegeven tekst want de value opties veranderen in het zelfde als de tekst is voor mij geen optie en de id is al in gebruik voor iets anders aan te sturen.
Om meer inzicht te krijgen in het script ik gebruik de volgende chained select in mijn formulier. http://www.appelsiini.net/projects/chained
Greetz
Peter
Gewijzigd op 19/10/2012 18:44:03 door Peter Overdam
Tekst, welke tekst?
<option id="2" value="hotel-cs" class="cc">Hotel</option>
Hij weergeeft nu na het verzenden de value hotel-cs maar het moet dus hotel worden, en het is voor mij niet mogelijk om de value te veranderen omdat de chained select niet werkt ivm meerdere opties in een select.
Gewijzigd op 19/10/2012 18:58:03 door Peter Overdam
Peter Overdam op 19/10/2012 18:37:18:
Is er een mogelijkheid om niet de value te kiezen maar de weergegeven tekst want de value opties veranderen in het zelfde als de tekst is voor mij geen optie
Heb de zin 10x gelezen en denk hem, door je bovenstaande reactie, eindelijk te begrijpen.
Waarom is het geen optie?
Waarom is dat geen optie? Gewoon even je loop waarin je de select maakt even aanpassen?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?php
// gewoon zo toch?
<select>
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="opel">Opel</option>
<option value="audi">Audi</option>
</select>
?>
// gewoon zo toch?
<select>
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="opel">Opel</option>
<option value="audi">Audi</option>
</select>
?>
Toevoeging op 19/10/2012 21:14:14:
wil je de waarden lezen in javascript of php?
Toevoeging op 19/10/2012 21:17:18:
Code (php)
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
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
<?php
// De tweede SELECT
<select name="location" id="location">
<option value="">--</option>
<option id="1" value="prive-cs" class="Companion Service">Privewoning</option>
<option id="2" value="hotel-cs" class="Companion Service">Hotel</option>
<option id="1" value="prive-dd" class="Dinnerdate (Lunch/Dinner)">Privewoning</option>
<option id="2" value="hotel-dd" class="Dinnerdate (Lunch/Dinner)">Hotel</option>
<option id="1" value="privewoning" class="Priveboeking">Privewoning</option>
<option id="2" value="hotel" class="Priveboeking">Hotel</option>
<option id="" value="ontvangst-nl" class="Priveboeking">Ontvangst in Den Haag (Nederland)</option>
<option id="" value="ontvangst-b" class="Priveboeking">Ontvangst in Kapellen (Belgie)</option>
</select>
// De derde SELECT
<select name="time" id="time">
<option value="">--</option>
<option value="cash" class="prive-cs hotel-cs">4 uur (lunch of diner)</option>
<option value="cash" class="prive-cs hotel-cs">8 uur (hele dag of avond)</option>
<option value="cash" class="prive-dd hotel-dd">5 uur (korte) diner date</option>
<option value="cash" class="prive-dd hotel-dd">8 uur (lange) diner date </option>
<option value="cash" class="prive-dd hotel-dd">14 uur (avond & nacht) diner date</option>
<option value="cash" class="prive-dd hotel-dd">16 uur (avond, nacht & ontbijt) diner date</option>
<option value="cash" class="privewoning hotel">1 uur</option>
<option value="cash" class="privewoning hotel">2 uur</option>
<option value="cash" class="privewoning hotel">3 uur</option>
<option value="cash" class="privewoning hotel">4 uur</option>
<option value="cash" class="privewoning hotel">5 uur</option>
<option value="cash" class="privewoning hotel">6 uur</option>
<option value="cash" class="privewoning hotel">12 uur</option>
<option value="cash" class="privewoning hotel">24 uur</option>
<option value="cash" class="privewoning hotel">2 dagen</option>
<option value="cash" class="privewoning hotel">3 dagen</option>
<option value="cash" class="privewoning hotel">4 dagen</option>
<option value="cash" class="privewoning hotel">5 dagen</option>
<option value="cash" class="privewoning hotel">Week van 7 dagen</option>
<option value="cash" class="privewoning hotel">Langer dan 7 dagen</option>
</select>
?>
// De tweede SELECT
<select name="location" id="location">
<option value="">--</option>
<option id="1" value="prive-cs" class="Companion Service">Privewoning</option>
<option id="2" value="hotel-cs" class="Companion Service">Hotel</option>
<option id="1" value="prive-dd" class="Dinnerdate (Lunch/Dinner)">Privewoning</option>
<option id="2" value="hotel-dd" class="Dinnerdate (Lunch/Dinner)">Hotel</option>
<option id="1" value="privewoning" class="Priveboeking">Privewoning</option>
<option id="2" value="hotel" class="Priveboeking">Hotel</option>
<option id="" value="ontvangst-nl" class="Priveboeking">Ontvangst in Den Haag (Nederland)</option>
<option id="" value="ontvangst-b" class="Priveboeking">Ontvangst in Kapellen (Belgie)</option>
</select>
// De derde SELECT
<select name="time" id="time">
<option value="">--</option>
<option value="cash" class="prive-cs hotel-cs">4 uur (lunch of diner)</option>
<option value="cash" class="prive-cs hotel-cs">8 uur (hele dag of avond)</option>
<option value="cash" class="prive-dd hotel-dd">5 uur (korte) diner date</option>
<option value="cash" class="prive-dd hotel-dd">8 uur (lange) diner date </option>
<option value="cash" class="prive-dd hotel-dd">14 uur (avond & nacht) diner date</option>
<option value="cash" class="prive-dd hotel-dd">16 uur (avond, nacht & ontbijt) diner date</option>
<option value="cash" class="privewoning hotel">1 uur</option>
<option value="cash" class="privewoning hotel">2 uur</option>
<option value="cash" class="privewoning hotel">3 uur</option>
<option value="cash" class="privewoning hotel">4 uur</option>
<option value="cash" class="privewoning hotel">5 uur</option>
<option value="cash" class="privewoning hotel">6 uur</option>
<option value="cash" class="privewoning hotel">12 uur</option>
<option value="cash" class="privewoning hotel">24 uur</option>
<option value="cash" class="privewoning hotel">2 dagen</option>
<option value="cash" class="privewoning hotel">3 dagen</option>
<option value="cash" class="privewoning hotel">4 dagen</option>
<option value="cash" class="privewoning hotel">5 dagen</option>
<option value="cash" class="privewoning hotel">Week van 7 dagen</option>
<option value="cash" class="privewoning hotel">Langer dan 7 dagen</option>
</select>
?>
Als ik dus in de tweede select de value zou aanpassen dan zou ik bij de derde zelect in de knoop komen omdat de options in de tweede select eigenlijk dubbel zijn.
Gewijzigd op 20/10/2012 08:37:31 door Peter Overdam
Als de value altijd cash is, waarom geef je die dan nog mee? Kan je net zo goed in je PHP altijd er van uitgaan dat het 'cash' is....
Die cash moet ik nog veranderen maar voordat ik verder ga met die chained select wou ik dus weten of mijn vorige vraag mogelijk was.
Waarom zou je "Langer dan 7 dagen" niet gewoon als value kunnen opgeven? Bang voor spaties? Met $_POST heb je daar geen last van. via $_GET bestaat er iets als urldecode().
Maar maak je HTML nou eerst eens kloppend.
De value wordt doorgestuurd. Als je GEEN value opgeeft wordt de zichtbare tekst doorgestuurd. Dus ga niet 2x hetzelfde opgeven (in de value en in de option).
En in mijn voorbeeld zie je bij de derde select dat ik verschillende values moet gebruiken om de juiste options in de select te kunnen weergeven.
Dat is waar ook, je kunt die hele value='' gewoon weglaten, helemaal vergeten.
@peter
Jij zegt: Als ik dus in de tweede select de value zou aanpassen dan zou ik bij de derde select in de knoop komen omdat de options in de tweede select eigenlijk dubbel zijn.
Dit klopt niet. Elke select krijgt zijn eigen waarde terug met POST:
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
<select name='select1' ><option>appel</option></select>
<select name='select2' ><option>peer</option></select>
<select name='select3' ><option>appel</option></select>
?>
<select name='select1' ><option>appel</option></select>
<select name='select2' ><option>peer</option></select>
<select name='select3' ><option>appel</option></select>
?>
geeft in de $_POST array terug:
Code (php)
Dus wat is nu het probleem?
Gewijzigd op 20/10/2012 11:12:10 door Frank Nietbelangrijk
Als ik dus in mijn location SELECT de values van de options zou veranderen in de options zelf dan kan ik in mijn time select dus niet meer kiezen tussen de verschillende options omdat ik bijvoorbeeld 2x 4 uur erin heb staan, maar 1 4 uur is met extra toegevoegde tekst. En dit is met meerdere options in de time select.
Ja, dan moet je de values dus wel gebruiken en moeten de values natuurlijk uniek zijn