javascript和php中的下拉列表
我在javascript中有一个下拉函数,其中只有汽车以选项形式显示。 当用户点击“Acura”时,模型会显示“活力”、“RSX” 选择模型后,零件组应出现,但不会显示。 我不知道第三个选项应该如何显示。 谢谢 这是我的密码javascript和php中的下拉列表,php,javascript,Php,Javascript,我在javascript中有一个下拉函数,其中只有汽车以选项形式显示。 当用户点击“Acura”时,模型会显示“活力”、“RSX” 选择模型后,零件组应出现,但不会显示。 我不知道第三个选项应该如何显示。 谢谢 这是我的密码 getCars.php <?php $models = array( "acura" => array("CL", "EL", "Integra", "Legend", "MDX", "NSX", "RL", "RSX", "SLX", "TL", "TSX
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>
getCars.php
使用流行的JS框架(如jQuery、prototype、主干或下划线)更简单、更清晰。这些都支持ajax和更新DOM,请查看一些教程,这比手动处理xmlhttp容易得多
但说到这里,您可以在chrome开发控制台(ctrl-shift-i,右键单击,切换日志XMLHttpRequests)或firebug控制台(如果您使用Firefox)中看到ajax请求的位置和方式。打开控制台,选择一辆车,ajax请求应该出现在控制台中,您可以单击控制台查看结果
调试愉快 我不懂php,但你用javascript标记欺骗了我,所以这可能是个愚蠢的问题,但对我来说,你似乎在听elseif语句中的parts组?在if语句中找到模型之后?我认为,一旦第一个“if”条件为真,if循环就会关闭。我也不太懂javascript,所以如果我不懂的话就忽略它off@Four_lo:Javascript支持嵌套条件(if语句中的if语句),如果这是您想要了解的。如果条件中的条件为true,“inside”语句将循环,然后像normal一样继续执行“outside”语句。