就在前面......我是使用Ajax的新手。
我正在一个网站上工作,我想要一个Select对象的结果来确定第二个Select对象中的选项(来自数据库查询)。我使用PHP,似乎唯一的方法就是使用Ajax。我已经编写了一个简短的html页面来测试我的Ajax知识,它似乎只能在Firefox上找到,但不能在Chrome或IE上找到。我已经做了很多研究,发现各种类似问题的人都没有真正的解决方案。
我正在对同一文件夹中的本地文件进行XMLHTTPRequest调用,所以我不应该遇到任何跨域问题。任何帮助将不胜感激。
这是我更改选择框时调用的Javascript函数: ...
function getData(str)
{
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.open("GET","ajax_info.php?color=",true);
xmlhttp.setRequestHeader("Content-Type", "text/xml");
xmlhttp.send();
alert(xmlhttp.responseText);
}
******** ajax_info.php +++++++++++++++++++++ //这是为响应xmlhttprequest而运行的php文件。它只是在这个时候生成一串数字。
<?php
$str = "";
$i = 0;
for($i; $i<1000; $i++)
{
$str = $str.$i."-";
}
echo $str;
?>
答案 0 :(得分:0)
您需要将事件处理程序附加到xmlhttp
对象以捕获onreadystatechange
事件。请注意,当您提醒您的值时,异步ajax调用刚刚触发并且尚未完成(您无论如何都没有检查):
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
alert(xmlhttp.responseText);
}
}
xmlhttp.open("GET","ajax_info.php?color=",true);
xmlhttp.setRequestHeader("Content-Type", "text/xml");
xmlhttp.send();
答案 1 :(得分:0)
那么你应该尝试jQuery。你可以更容易地提出ajax请求。
以下是您的问题的示例
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script>
// FOR GET REQUEST
$.get("ajax_info.php",{color:'value'},function(data) {
alert(data); // RETRIEVE THE RESULT
});
</script>