MySQL database doorlopen met Javascript variabele
ik ben bezig een dynamisch gegenereerd formulier te maken. Het idee is dat iemand een optie uit een dropdownvakje kan selecteren en dat dan de volgende opties uit de databse worden opgehaald.
De opties in het tweede vakje zijn dus afhankelijk van de gekozen waarde in het eerste vakje (dit herhaald zich een onbekend aantal keer).
Ik stuur de waarde van het eerste vakje mee naar een Javascript functie die een nieuw vakje aanmaakt. Het probleem is alleen dat ik de databse niet kan doorlopen met deze variabele aangezien deze in Javascript staat en ik deze niet kan overnemenen naar PHP.
Wie kan mij vertellen hoe ik dit het beste kan oplossen?
Bedankt voor alle hulp,
Irian
PS, hier is de code die ik geschreven heb:
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
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
<html>
<head>
<?php
$db_host = "";
$db_user = "";
$db_pass = "";
$db_database = "";
mysql_connect($db_host,$db_user,$db_pass);
mysql_select_db($db_database);
$i = "1";
?>
<script language="Javascript" type="text/javascript">
<!--
function new_field(mother_id) {
if (mother_id == "") {
return;
}
var div = document.getElementById('form');
var select = document.createElement("select");
select.setAttribute("name", <?php echo $i; ?>);
select.setAttribute("id", <?php echo $i; ?>);
select.addEventListener ("change", function() {new_field(this.value)}, false);
div.appendChild(select);
var option = document.createElement("option");
option.setAttribute("value", "");
option.innerHTML = "";
select.appendChild(option);
<?php
$mother_id = ?>mother_id<?php;
$sql = "SELECT * FROM wordpress_booking WHERE child_of = '".$mother_id."' ORDER BY id ASC";
$query = mysql_query($sql);
while ($show = mysql_fetch_array($query)) {
$id = htmlspecialchars($show['id']);
$name = htmlspecialchars($show['name']);
?>
var option = document.createElement("option");
option.setAttribute("value", "<?php echo$id; ?>");
option.innerHTML = "<?php echo $name; ?>";
select.appendChild(option);
<?php
}
$i++;
?>
}
//-->
</script>
</head>
<body>
<div id="form">
</div>
<script language="Javascript" type="text/javascript">
<!--
new_field("1");
//-->
</script>
</body>
</html>
<head>
<?php
$db_host = "";
$db_user = "";
$db_pass = "";
$db_database = "";
mysql_connect($db_host,$db_user,$db_pass);
mysql_select_db($db_database);
$i = "1";
?>
<script language="Javascript" type="text/javascript">
<!--
function new_field(mother_id) {
if (mother_id == "") {
return;
}
var div = document.getElementById('form');
var select = document.createElement("select");
select.setAttribute("name", <?php echo $i; ?>);
select.setAttribute("id", <?php echo $i; ?>);
select.addEventListener ("change", function() {new_field(this.value)}, false);
div.appendChild(select);
var option = document.createElement("option");
option.setAttribute("value", "");
option.innerHTML = "";
select.appendChild(option);
<?php
$mother_id = ?>mother_id<?php;
$sql = "SELECT * FROM wordpress_booking WHERE child_of = '".$mother_id."' ORDER BY id ASC";
$query = mysql_query($sql);
while ($show = mysql_fetch_array($query)) {
$id = htmlspecialchars($show['id']);
$name = htmlspecialchars($show['name']);
?>
var option = document.createElement("option");
option.setAttribute("value", "<?php echo$id; ?>");
option.innerHTML = "<?php echo $name; ?>";
select.appendChild(option);
<?php
}
$i++;
?>
}
//-->
</script>
</head>
<body>
<div id="form">
</div>
<script language="Javascript" type="text/javascript">
<!--
new_field("1");
//-->
</script>
</body>
</html>
- chain slect
- schoonmaakmiddel "ajax" protocol
Neem ook gerust eens een kijkje bij: jquery
Ik ken Ajax nog niet, maar ga het nu leren.
Groet,
Irian
Gewijzigd op 08/01/2012 11:03:32 door Irian Vis