ajaxxmlhttprequest&x27;反弹';将变量发送到PHP时
如果我不能正确地表达我的问题,我很抱歉,但我会尽我最大的努力。我一直在网上寻找可以帮助我解决这个问题的信息,但没有结果。 只是一点背景知识。我是一个有经验的网络程序员,虽然在这之前的几年里还没有做过网络工作,但我以前在PHP和JavaScript中做了相当多的工作,现在我用C++工作,所以我对编程原理有相当的经验。 我正在开发一些博客软件,而在4WordPress和jQuery中,我根本不在乎。所以请不要浪费它。。。我通过一个简单的AJAX请求函数将一些博客条目加载到元素中。此函数的详细信息如下:(当我试图调试此问题时,它已更改为我在网上找到的一个3函数示例,没有人的“简单”代码可以工作。) 这个问题在代码下面有详细说明ajaxxmlhttprequest&x27;反弹';将变量发送到PHP时,php,javascript,ajax,Php,Javascript,Ajax,如果我不能正确地表达我的问题,我很抱歉,但我会尽我最大的努力。我一直在网上寻找可以帮助我解决这个问题的信息,但没有结果。 只是一点背景知识。我是一个有经验的网络程序员,虽然在这之前的几年里还没有做过网络工作,但我以前在PHP和JavaScript中做了相当多的工作,现在我用C++工作,所以我对编程原理有相当的经验。 我正在开发一些博客软件,而在4WordPress和jQuery中,我根本不在乎。所以请不要浪费它。。。我通过一个简单的AJAX请求函数将一些博客条目加载到元素中。此函数的详细信息如下
var httpObject = null;
function getHTTPObject(){
if(window.ActiveXObject) return new ActiveXObject("Microsoft.XMLHTTP");
else if(window.XMLHttpRequest) return new XMLHttpRequest();
else {
alert("Your browser does not support AJAX.");
return null;
}
}
function setOutput(){
if(httpObject.readyState == 4){
document.getElementById("entries").innerHTML = httpObject.responseText;
}
}
function loadEntries(s) {
httpObject = getHTTPObject();
if (httpObject != null) {
httpObject.open("GET","entries.php?" + s,true);
httpObject.send(null);
httpObject.onreadystatechange = setOutput;
}
}
简单的东西?我看不出有什么错误。函数的调用方式如下:
<div id='entries'>
<script type="text/javascript">
loadEntries('blog=<?php echo $process['id']; ?>&page=0');
</script>
</div>
loadEntries('blog=&page=0');
也很简单。
下面是“entries.PHP”的PHP代码:
<?php
require_once('inc/bloginc.php');
if(isset($_GET['page'])) {
$page = intval($_GET['page']);
} else $page = 0;
$entries = 3;
$init = $page * $entries;
$limit = $entries + $init;
if(!isset($_GET['blog'])) die("WTF DIE");
else $blog = mysql_real_escape_string($_GET['blog']);
$tag = '';
if(isset($_GET['tag'])) {
$tag = mysql_real_escape_string($_GET['tag']);
echo "<span class='blogEntryBody'>viewing entries tagged with: '" . $tag . "' / <a href='' onclick=\"";
echo "loadEntries('blog=" . $blog . "')";
echo "\">clear?</a></span></br>";
echo "<hr>";
}
$numposts = nResults($blog, $tag);
buildEntries(getEntries($blog, $tag, $init, $limit));
if($numposts > $entries) {
echo "</br><span class='blogEntryBody'>";
if($page > 0) {
echo "<a href='' onClick=\"";
echo "loadEntries('blog=" . $blog;
if(isset($_GET['tag'])) echo "&tag=" . $tag;
echo "&page=" . (--$page) . "')";
echo "\">Previous Entries</a>";
echo " / ";
}
echo "<a href='' onClick=\"";
echo "loadEntries('blog=" . $blog;
if(isset($_GET['tag'])) echo "&tag=" . $tag;
echo "&page=" . (++$page) . "')";
echo "\">Next Entries</a>";
echo "<br></span>";
}
?>
ajax在chrome&explorer中不起作用的情况时有发生,所以我建议使用jquery,因为jquery中已经包含了explorer和chrome的代码
你可以用
$.get、$.post或$.ajax方法很容易使用。定义“不工作”。正在调用您的setOutput
?它会在内部抛出错误吗?请注意,回调错误会被浏览器吞没,因此您必须在内部执行try/catch
。innerHTML
没有设置吗?你似乎对你的问题有点厌倦了。如果您可以将问题归结为一个特定的关注点并强调它(有证据),那么这才是真正重要的。而且,在过去几年中,jQuery和其他库已经抽象了大部分AJAX经验,所以这并不难。特别是如果你是一个有经验的程序员,至少要考虑使用jQuery for AJAX。@liho:Yep,正在调用setOutput。innerHTML正在被设置,这通常是有效的,只是在某些情况下会失败。当传递某些变量时。我可以尝试使用try/catch块。我对你说的“厌倦”有点困惑?你读过我的问题了吗?那么什么不起作用呢?我同意杰瑞德的观点。你的问题到处都是。你扔了一堆代码让我们找出其中的问题。您需要自己调试并缩小问题范围。没人会看着它然后告诉你它是什么。