[英]My Ajax GET isn't working .
这是我与Ajax的第一次接触,也是我的新手。 。 。 一切!
最终,我想从数据库中获取值,但是为了检查我是否已经使Ajax正常工作,我要做的就是让它显示一行文本。
这是我的代码:
function loadSection(section)
{
if (section=="")
{
document.getElementById("entry").innerHTML="";
return;
}
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("entry").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","getentry.php&q="+section,true);
xmlhttp.send();
}
这是PHP:
<?php
$section = $GET[$section]; //not currently doing anything, will be needed when
actually searching database
echo "fingers crossed";
?>
据我所知,唯一要做的就是与W3Schools网站上的示例不同,它将Ajax放在单独的.js文件中,但是当我将其包含在主页中时,它也不起作用。
任何帮助,不胜感激!
编辑添加:谢谢大家! jraede正确地发现了该函数从未被调用过,并且jquery技巧也很受人们欢迎:-)
你应该这样写-
$section = $GET['q'];
不是getentry.php&q=
,
尝试
getentry.php?q=
并且在$ _GET中应为$_GET['q']
如果您使用的是chrome,请打开控制台并查看是否存在任何错误。
这里有些事情可能会出错,因此有助于获得更多信息。 但是,从您提供的内容来看,我可以确定您应检查的以下区域:
1)确保javascript和PHP中的语法均正确。
您的javascript有一些人已经指出的错误,即"getentry.php&q="
应该是"getentry.php?q="
。
在您的PHP中,您尝试检索$GET[$section]
,它有两个错误。 首先,要从查询字符串中检索变量,您需要使用$_GET
,而不是$GET
。 其次,假设$section
尚未定义,或者至少查询字符串中没有匹配的变量,则此代码将返回一个空白值。 正如许多人已经指出的那样,这应该是$_GET['q']
。
2)确保脚本正在执行您认为正在执行的操作。
您在哪里调用loadSection()
函数? 你在打电话吗? 尝试使用alert
或console.log
吐出该函数中section
的值-也许未设置?
3)确保请求已结束,并检查是否收到响应
使用Chrome,您可以打开开发人员工具,点击“网络”标签,然后观察AJAX请求是否消失并查看其响应。 打开网络选项卡,刷新页面,执行所需的任何操作以调用loadSection()
函数,然后单击“预览”或“响应”选项卡以查看服务器已响应的内容。 可能实际的AJAX请求工作正常,并且对响应不做任何事情。
4)确保您的回应已得到执行
我看到无论响应文本是什么,您都有代码来设置#entry的innerHTML。 确保页面上某处有一个id="entry"
的元素,并且在运行此代码时该元素在页面上。 另外,请尝试在onreadystatechange
函数中的xmlhttp
对象上使用console.log
来查看其作用。 状态代码可能永远不会设置为200或readyState
永远不会设置为4。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.