PHP和MySQL的多个相关选择框

时间:2012-01-13 23:31:32

标签: php javascript mysql ajax

好的,要么我无法正常搜索网页,要么我无法理解,我的搜索结果的重点,但经过几天的搜索并尝试自己做,我仍然没有简单和可以理解的答案!

我有一个带选择框的航班搜索表单。 选择框结果通过PHP从PHP填充。

示例:

转发航班:

  

出发城市 - “伦敦”

     

目的地城市 - 所有城市都在伦敦举行

     

航班日期 - 伦敦航班的所有航班日期 - >转发目的地   城市

后退航班:

  

出发城市 - 所有城市再次出现在伦敦

     

目的地城市 - 所有城市都在向后离开城市

     

航班日期 - 航班后退的所有航班日期   城市 - >落后目的地城市

我只使用PHP和表单GET方法制作这个表单没问题,但是,当然,我想摆脱页​​面重新加载。明显的解决方案 - AJAX。

我的方法:

  1. 在选择框中使用onChange事件,以使用属性'this.value'
  2. 调用javascript函数
  3. javascript函数使用GET方法将XMLHttpRequest发送到服务器(.php文件)
  4. .php文件包含MySQL请求的函数,用简单的“if($ _GET ['value_sent_with_javascript_function'])”
  5. 调用
  6. javascript函数将php响应放在div中 - document.getElementById(“div_id”)。innerHTML = xmlhttp.responseText;
  7. 这适用于两个文件(第一个是“父”,第二个 - “子” - 根据“父”框选择值填充)。但是,如果我想使用相同的方法来填充第三个字段(依赖于“child”的字段),它只是不起作用。因为我不是javascript的专家,所以我无法理解这一点。

    我打赌有一个简单的解决方案!

1 个答案:

答案 0 :(得分:0)

一个简单的例子,可以帮助你:

Main.php文件

    <script type="text/javascript">
    function loadXMLDoc(step)
    {
        var showPage;
        var rrestultBox;

        if (step==1)
        {
            showPage = 'destination.php?select=' + document.getElementById('departure').value;
            resultBox = 'destinationBox';
        }
        if (step==2)
        {
            showPage = 'times.php?select=' + document.getElementById('destination').value;
            resultBox = 'timesBox';
        }
        var xmlhttp;
        if (window.XMLHttpRequest)
        {// code for IE7+, Firefox, Chrome, Opera, Safari
            xmlhttp=new XMLHttpRequest();
        } else {// code for IE6, IE5
            xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
            xmlhttp.onreadystatechange=function()
        {

        if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
            document.getElementById(resultBox).innerHTML=xmlhttp.responseText;
        }
    }
        xmlhttp.open("GET",showPage,true);
        xmlhttp.send();
    }
</script>
<form name="selectBoxes">
    <select name="departure" id="departure" onchange="loadXMLDoc(1);">
        <option value="sydney">Sydney</option>
        <option value="canberra">Canberra</option>
        <option value="Melbourne">Melbourne</option>
    </select>
</form>
<div id="destinationBox"></div>
<div id="timesBox"></div>

<强> destination.php

<form name="selectBoxes">
    <select name="destination" id="destination" onchange="loadXMLDoc(2);">
        <option value="sydney">Sydney</option>
        <option value="canberra">Canberra</option>
        <option value="Melbourne">Melbourne</option>
    </select>
</form>

times.php文件

<form name="selectBoxes">
<select name="times" id="times"">
    <option value="">1pm</option>
    <option value="">2pm</option>
    <option value="">3pm</option>
</select>

观看它的实际效果:here

**已更新,忘记添加'destination.php'