如何使用多个ajax?

时间:2013-12-24 12:52:13

标签: php ajax

我正在使用ajax来获取日期标签中的数据,但这不起作用。 Details()函数正在运行,但是showDate()被卡住了。我如何获得 dt id ??

中的数据
<label><b>From</b></label>
            <select id="f" onchange="Details();"><?php echo $coptions; ?></select>
            <label><b>Destination</b></label>
            <select id="d" onchange="Details();"><?php echo $coptions; ?></select>
            <label><b>Flight Name</b></label>
            <select id="list" onchange="showDate();" ></select>
            <label><b>Date</b></label>
            <select id="dt" ></select>
            <button >Go</button>

这是我的ajax功能:

function Details()
{
    var xmlhttp;
    var fname = document.getElementById("f").value;
    var dname = document.getElementById("d").value;

    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)
        {
            document.getElementById("list").innerHTML=xmlhttp.responseText;
            showDate();
        }
    }
    xmlhttp.open("GET","route.php?q="+fname+"&w="+dname,true);
    xmlhttp.send();
    //loadDetails();
}
function showDate()
    {
        var xmlhttp;
        var ex=document.getElementById("list");
        var id=ex[ex.selectedIndex].id;

        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("dt").innerHTML=xmlhttp.responseText;

            }
        }
        xmlhttp.open("GET","schdl2.php?f="+id,true);
        xmlhttp.send();
        //loadDetails();
    }

我的schdl2.php页面是这样的:

<?php
    session_start();
    require_once("dbconnect.php");
    $fl=$_REQUEST['f'];

    $sql= "SELECT date FROM schedule where flight='$f1'";
    $rslt = mysql_query($sql);
    $foptions="";
    while ($row=mysql_fetch_array($rslt))
    {
        $rd=$row["date"];
        $foptions.="<option>$rd<option>";
    }
    echo $foptions;

?>

有什么有效的方法吗?

2 个答案:

答案 0 :(得分:0)

我做了一些测试,你的id var总是空的;所以我改变了你的代码:

    This:

    var id=ex[ex.selectedIndex].id;

    By this on the showDate function:

    var id = document.getElementById("list").value;

Jsfiddle:http://jsfiddle.net/x97jn/

答案 1 :(得分:0)

您可以使用JQuery ajax。

$( document ).ready(function() {

    $.ajax({

        url: "ajax-1.php",
        context: document.body

    }).done(function(data) {

        $('#result-1').html(data);

    });


    $.ajax({

        url: "ajax-2.php",
        context: document.body

    }).done(function(data) {

        $('#result-2').html(data);

    })


});