0
我有一個下拉功能在JavaScript中只有汽車出現在選項表單中。 當用戶點擊「Acura」時,模型顯示「Vigor」,「RSX」...下拉的JavaScript和PHP
當模型被選定時,零件組應該出現,但它顯示出劑量。 我無法弄清楚第三個選項應該如何顯示。 感謝 這裏是我的代碼
getCars.php
<?php
$models = array(
"acura" => array("CL", "EL", "Integra", "Legend", "MDX", "NSX", "RL", "RSX", "SLX", "TL", "TSX", "Vigor"),
"alfa" => array("1750", "Alfetta", "GTV-6", "Romeo 164", "Romeo Milano", "Spyder", "Spyder 1600 Duetto", "Spyder1600", "Veloce 2000")
);
$partgroup = array(
"Accessories" => array("Bed Cover", "Bed Liner", "Bed Rails", "Car Cover", "Converitible Boot Cover", "Jack",
"Luggage Rack", "Spare Tire Cranks", "Spare Tire Holder", "Tool Kit")
);
//echo "Cars: " . $_GET['cars'];
if(isset($_GET['cars'])) {
$c = $_GET['cars'];
$p = $_GET['partGroup'];
if(isset($models[$c])) {
for($i = count($models[$c]) -1; $i>=0; $i--) {
echo "<option value='" . $models[$c][$i] . "'>" . $models[$c][$i]. "</option>";
}
}
else if(isset($partgroup[$p])) {
for($i = count($partgroup[$p]) -1; $i>=0; $i--) {
echo "<option value='" . $partgroup[$p][$i] . "'>" . $partgroup[$p][$i]. "</option>";
}
}
}
?>
index.php
<html>
<head>
<title></title>
</heady>
<body>
<form name="form1" action="submit.php" method='post'>
Please choose a car model<br/>
<select name="cars" onchange="window.getCars()">
<option disabled>Select Car model </option>
<option value="acura">Acura</option>
<option value="alfa">Alfa</option>
</select>
<br/>
<input type="submit" name="submit" value="submit">
</form>
<script type="text/javascript">
function getCars() {
var xmlhttp;
try {
xmlhttp = new XMLHttpRequest;
}catch(e)
{
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
if(xmlhttp) {
var form = document['form1'];
var cars = form['cars'].value;
xmlhttp.open("GET", "http://localhost/drop/getCars.php?cars="+cars, true);
xmlhttp.onreadystatechange = function()
{
if(this.readyState == 4) {
var s = document.createElement("select");
s.name = "model";
s.innerHTML = this.responseText;
if(form['model']) {
form.replaceChild(s, form['model']);
}
else
form.insertBefore(s, form['submit']);
getpartGroup();
//alert(this.responseText);
}
}
xmlhttp.send(null);
}
}
</script>
<script type="text/javascript">
function getpartGroup() {
var xmlhttp;
try {
xmlhttp = new XMLHttpRequest;
}catch(e)
{
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
if(xmlhttp) {
var form = document['form1'];
var cars = form['partGroup'].value;
xmlhttp.open("GET", "http://localhost/drop/getCars.php?partGroup="+partGroup, true);
xmlhttp.onreadystatechange = function()
{
if(this.readyState == 4) {
var s = document.createElement("select");
s.name = "partGroup";
s.innerHTML = this.responseText;
if(form['partGroup']) {
form.replaceChild(s, form['partGroup']);
}
else
form.insertBefore(s, form['submit']);
//alert(this.responseText);
}
}
xmlhttp.send(null);
}
}
</script>
</body>
</html>
我不知道PHP,但你欺騙了我的JavaScript標記,所以這可能是一個愚蠢的問題,但對我來說,它看起來像你在elseif聲明中的零件組?在if語句中找到模型後?我會認爲if循環會在第一個「if」條件成立時關閉。我不知道很多的JavaScript或者儘管如此忽略,如果我的方式關閉 – 2013-03-17 22:35:12
@Four_lo:Javascript支持嵌套條件(如果語句內if語句),如果這就是你得到的。如果條件內的條件爲真,則'內部'語句將循環,然後像正常一樣繼續'外部'語句。 – 2013-03-18 03:03:14