Dmv selectbox database raadplegen zonder pagina refresh
Ik heb een vraag waarvan ik hoop dat die met php is op te lossen. Ik wil graag het volgende doen. Ik heb een formulier met 2 selectboxen. Ze staan beiden op dezelfde pagina.
Deze selectboxen worden samengesteld uit een mysql database. Wanneer een waarde wordt gekozen uit selectbox 1, dient die gebruikt te worden om de waarden in selectbox 2 op te vragen in de database.
In selectbox 1 (wordt gevoegd uit de database) staand klantnamen welke komen uit de tabel "Klant":
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<select >
<option value="1">Klant 1</option>
<option value="2">Klant 2</option>
<option value="3">Klant 3</option>
<option value="4">Klant 4</option>
</select>
<option value="1">Klant 1</option>
<option value="2">Klant 2</option>
<option value="3">Klant 3</option>
<option value="4">Klant 4</option>
</select>
Een klant kan meerder locaties hebben. Deze locaties staan in de tabel "Locaties". De klantid's, de values uit de vorige selectbox, staan ook in deze tabel.
Door bijvoorbeeld in selectbox 1 te kiezen voor klant 1, dient de value van klant 1 te worden gebruikt voor de waarden die weergegeven dienen te worden uit de tabel "Locaties".
Dus bijvoorbeeld:
Code (php)
1
2
3
4
5
2
3
4
5
<select >
<option value="1">Teststraat 1 1234AB Testland</option>
<option value="2">Haarstraat 2 5432BB Haarteveel</option>
<option value="3">Inspiratie 1 9999ZZ GeenInspiratie</option>
</select>
<option value="1">Teststraat 1 1234AB Testland</option>
<option value="2">Haarstraat 2 5432BB Haarteveel</option>
<option value="3">Inspiratie 1 9999ZZ GeenInspiratie</option>
</select>
Graag wil ik dit realiseren zonder de pagina te hoeven te refreshen.
Indien dit niet met php op te lossen is hoor ik dit graag. Misschien kan iemand dat een voorbeeld geven hoe het wel moet.
Hartelijk dank voor jullie tijd.
Wim
ps, ik heb dit al gevonden: http://www.w3schools.com/PHP/php_ajax_database.asp
Hier kom ik alleen niet echt uit :D, misschien dat iemand wat tips heeft.
Vergeten emailreply aan te zetten, kan ik dat nog veranderen?
Wim
met alleen PHP ga je dit niet halen, maar dat had je zelf ook al gevonden als ik die tutorial in je bericht zo zie... Als je graag veilig binnen PHP wilt blijven programmeren, en wel selectboxes wilt aanpassen via ajax, kijk dan even naar de xajax library...
Tnx voor je reactie. Ik ben even wezen stoeien met bovenstaande link en ik heb het werkend gekregen, nu zelf zo dat ik uiteindelijk een 3e selectbox kan opvragen. Ik zit nu alleen nog met het feit dat ik daarvoor 2 php bestanden en 2 javascript bestanden moet maken.
Iemand een oplossing daarvoor?
In de eerste getuser.php het ik dit toegevoegd, let niet op de rommel, gewoon wezen stoeien :-D :
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
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
<?php
$sql="SELECT * FROM crm_location WHERE companyid = '".$q."'";
$result = mysql_query($sql);
$aantal_rijen=mysql_num_rows($result);
?>
<form>
Select Location:
<select name="users" onchange="showUser2(this.value)">
<option selected value="">Kies hier de locatie</option>
<?php
for($i=0;$i<$aantal_rijen;$i++)
{
$row=mysql_fetch_row($result);
echo "<OPTION value=\"" . $row[1] . "\">" . $row[2] . " " . $row[3] . " " . $row[4] . " " . $row[7] . "</OPTION>\n";
} //EINDE for($i=0;$i<$aantal_rijen;$i++)
?>
</select>
</form>
<p>
<div id="txtHint"><b>Kies hierboven eerst een locatie</b></div>
</p>
$sql="SELECT * FROM crm_location WHERE companyid = '".$q."'";
$result = mysql_query($sql);
$aantal_rijen=mysql_num_rows($result);
?>
<form>
Select Location:
<select name="users" onchange="showUser2(this.value)">
<option selected value="">Kies hier de locatie</option>
<?php
for($i=0;$i<$aantal_rijen;$i++)
{
$row=mysql_fetch_row($result);
echo "<OPTION value=\"" . $row[1] . "\">" . $row[2] . " " . $row[3] . " " . $row[4] . " " . $row[7] . "</OPTION>\n";
} //EINDE for($i=0;$i<$aantal_rijen;$i++)
?>
</select>
</form>
<p>
<div id="txtHint"><b>Kies hierboven eerst een locatie</b></div>
</p>
Gewijzigd op 01/01/1970 01:00:00 door Wim Selles