我正在使用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;
?>
有什么有效的方法吗?
答案 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);
})
});