Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript和php中的下拉列表_Php_Javascript - Fatal编程技术网

javascript和php中的下拉列表

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

我在javascript中有一个下拉函数,其中只有汽车以选项形式显示。 当用户点击“Acura”时,模型会显示“活力”、“RSX”

选择模型后,零件组应出现,但不会显示。 我不知道第三个选项应该如何显示。 谢谢 这是我的密码

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”语句。