Juiste waarde in selectbox zien
De selectbox bevat 3 items.
Gegevens worden bijv. als 2,B weggeschreven.
Bij het ophalen van gegevens wil ik dan ook
de juiste tekst in de selectbox zien.
Zoals het nu gaat plaats hij de gegevens naast de
selectbox en blijft de selectbox op -Selecteer wijk- staan.
Ben er nu een paar dagen mee bezig, maar helaas lukt het me niet.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
echo '<p>'.PHP_EOL;
echo '<label for="wijk" class="align_text">Wijk:</label>'.PHP_EOL;
echo '<select id="cmbwijk" name="wijk">'.PHP_EOL;
echo '<option value="0">Selecteer wijk</option>'.PHP_EOL;
echo '<option value="1, --">--</option>'.PHP_EOL;
echo '<option value="2, B">Buytenwegh</option>'.PHP_EOL;
echo '<option value="3, L">de Leyens</option>'.PHP_EOL;
$wijkselectie= explode(',',$wijk);
echo '<option value="'.$wijkselectie[0].'">'.$wijkselectie[1].'</option>';
//echo $wijkselectie[0];
//echo $wijkselectie[1];
echo '</select>'.PHP_EOL;
echo '</p>'.PHP_EOL;
echo '<label for="wijk" class="align_text">Wijk:</label>'.PHP_EOL;
echo '<select id="cmbwijk" name="wijk">'.PHP_EOL;
echo '<option value="0">Selecteer wijk</option>'.PHP_EOL;
echo '<option value="1, --">--</option>'.PHP_EOL;
echo '<option value="2, B">Buytenwegh</option>'.PHP_EOL;
echo '<option value="3, L">de Leyens</option>'.PHP_EOL;
$wijkselectie= explode(',',$wijk);
echo '<option value="'.$wijkselectie[0].'">'.$wijkselectie[1].'</option>';
//echo $wijkselectie[0];
//echo $wijkselectie[1];
echo '</select>'.PHP_EOL;
echo '</p>'.PHP_EOL;
Gewijzigd op 16/11/2014 16:37:09 door Willem L
Waar krijgt de variable $wijk zijn waarde ?
Ik zou nog eens goed kijken naar het gecombineerde gebruik vam HTML en PHP, ik heb een beetje het idee dat je het nog niet helemaal begrijpt.
$wijk = stripslashes($data['wijk']);
Hier komt de waarde uit bijv. 2,B
Heb je al eens gekeken of $wijk wel de juiste gegevens terug krijgt uit de database ? (echo $wijk;)
Zo kan ik de selectbox gebruiken om een keuze te maken.
Dit wordt in kolom wijk weggeschreven als bijv. 2,B naar de database.
Als ik gegevens van een bepaald persoon wil wijzigen worden de
velden vanuit de database gevuld. $wijk geeft dan 2,B terug terug.
Dus als $wijk 2,B is wil ik dat de selectbox dan ook Buytenwegh weergeeft.
en dat wannneer ik die data wil wijzigen dat ook weer kan en alles kan wegschrijven naar de
database
Gewijzigd op 16/11/2014 23:03:32 door Willem L
Omdat het niet erg degelijk klinkt geef ik hieronder aan hoe het volgens mij zou moeten:
Ik begrijp dat je een keuze wilt maken uit een aantal wijken. Deze wijken staan al in de database, laten we aannemen in de tabel 'wijken'.
Deze tabel zou een primaire sleutel moeten hebben, zeg maar een uniek id.
Dit id zou de value moeten worden van de <option>
Dus stel je hebt deze tabel:
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
wijken:
========================
id | code | omschrijving
========================
1 | 1,-- | --
2 | 2, B | Buytenwegh
3 | 3, L | de Leyens
========================
id | code | omschrijving
========================
1 | 1,-- | --
2 | 2, B | Buytenwegh
3 | 3, L | de Leyens
dan komen je opties er zo uit te zien:
Code (php)
1
2
3
2
3
<option value="1">--</option>
<option value="2">Buytenwegh</option>
<option value="3">de Leyens</option>
<option value="2">Buytenwegh</option>
<option value="3">de Leyens</option>
Mocht je nou perse ook nog de code nodig hebben voor in je javascript dan kun je gebruik maken van het data- attribuut:
Code (php)
1
2
3
2
3
<option data-code="1,--" value="1">--</option>
<option data-code="2, B" value="2">Buytenwegh</option>
<option data-code="3, L" value="3">de Leyens</option>
<option data-code="2, B" value="2">Buytenwegh</option>
<option data-code="3, L" value="3">de Leyens</option>
Gewijzigd op 17/11/2014 00:59:40 door Frank Nietbelangrijk
Dit kan gemakkelijk met jQuery,
Op dit moment schrijft hij de data weg als '$wijk'
dit bevat dan '2,B'
Bij het opvragen van gegevens om te wijzigen wil ik dat de selectbox
dan ook 'Buytenwegh' toont, dus option value= 2 met tekst: Buytenwegh.
Door gebruikmaking van navolgende code,
Gebeurt er niets met de selectbox
alleen de variabele (tekst) komt naast de selectbox te staan,
waarom selecteer hij dan niet de selectbox?
Code (php)
1
2
3
4
5
2
3
4
5
$wijkselectie= explode(',',$wijk);// $wijk geeft 2,B terug
echo '<option value="'.$wijkselectie[0].'">'.$wijkselectie[1].'</option>';
//echo $wijkselectie[0]; geeft 2
//echo $wijkselectie[1]; geeft B
[/CODE]
echo '<option value="'.$wijkselectie[0].'">'.$wijkselectie[1].'</option>';
//echo $wijkselectie[0]; geeft 2
//echo $wijkselectie[1]; geeft B
[/CODE]
Gewijzigd op 17/11/2014 11:46:22 door Willem L
Je hebt alleen het id nodig.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
$waarde_uit_database = 2;
$selectArray = array( 'Selecteer wijk',
'--',
'Buytenwegh',
'de Leyens'
);
echo '<select id="cmbwijk" name="wijk">'.PHP_EOL;
foreach($selectArray as $key => $value)
{ $selected = ($waarde_uit_database == $key) ? ' selected' : '';
echo '<option value="'.$key.'"'.$selected.'>'.$value.'</option>'.PHP_EOL;
}
echo '</select>'.PHP_EOL;
?>
$waarde_uit_database = 2;
$selectArray = array( 'Selecteer wijk',
'--',
'Buytenwegh',
'de Leyens'
);
echo '<select id="cmbwijk" name="wijk">'.PHP_EOL;
foreach($selectArray as $key => $value)
{ $selected = ($waarde_uit_database == $key) ? ' selected' : '';
echo '<option value="'.$key.'"'.$selected.'>'.$value.'</option>'.PHP_EOL;
}
echo '</select>'.PHP_EOL;
?>
Thanx
werkt, heb gelukkig nu alles werkend.
Mijn dank is zéér groot.
Toevoeging op 17/11/2014 19:51:13:
@San The
Toch nog één vraagje geldt dit ook voor een checkbox.
1 vanaf de DB aangevinkt en 0 niet aangevinkt
Gewijzigd op 17/11/2014 19:52:04 door Willem L
Ja, dan is het alleen checked in plaats van selected.
Krijg je dan zoiets?
ff ter lering, nog nooit gebruikt.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
echo '<p>'.PHP_EOL;
$waarde_uit_database = $actief; // $actief= 0 of 1
$selectArray = array('0','1');
echo '<label for="actief" class="align_text">actief lid:</label>';
echo '<input type="checkbox" name="actief">';
foreach($selectArray as $key => $value)
{ $checked = ($waarde_uit_database == $key) ? ' checked' : '';
echo '<value="'.$key.'"'.$checked.'>'.$value.''.PHP_EOL;
}
echo '</p>'.PHP_EOL;[/CODE]
$waarde_uit_database = $actief; // $actief= 0 of 1
$selectArray = array('0','1');
echo '<label for="actief" class="align_text">actief lid:</label>';
echo '<input type="checkbox" name="actief">';
foreach($selectArray as $key => $value)
{ $checked = ($waarde_uit_database == $key) ? ' checked' : '';
echo '<value="'.$key.'"'.$checked.'>'.$value.''.PHP_EOL;
}
echo '</p>'.PHP_EOL;[/CODE]
Gewijzigd op 18/11/2014 09:44:02 door Willem L
Bij de code de $value weggehaald, deze gaf value waarde door
van bovengelegen waarde van de selectbox.
Maar mijn dank is wederom groot.
Code (php)
Gewijzigd op 18/11/2014 15:13:07 door Willem L