Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ajaxxmlhttprequest&x27;反弹';将变量发送到PHP时_Php_Javascript_Ajax - Fatal编程技术网

ajaxxmlhttprequest&x27;反弹';将变量发送到PHP时

ajaxxmlhttprequest&x27;反弹';将变量发送到PHP时,php,javascript,ajax,Php,Javascript,Ajax,如果我不能正确地表达我的问题,我很抱歉,但我会尽我最大的努力。我一直在网上寻找可以帮助我解决这个问题的信息,但没有结果。 只是一点背景知识。我是一个有经验的网络程序员,虽然在这之前的几年里还没有做过网络工作,但我以前在PHP和JavaScript中做了相当多的工作,现在我用C++工作,所以我对编程原理有相当的经验。 我正在开发一些博客软件,而在4WordPress和jQuery中,我根本不在乎。所以请不要浪费它。。。我通过一个简单的AJAX请求函数将一些博客条目加载到元素中。此函数的详细信息如下

如果我不能正确地表达我的问题,我很抱歉,但我会尽我最大的努力。我一直在网上寻找可以帮助我解决这个问题的信息,但没有结果。 只是一点背景知识。我是一个有经验的网络程序员,虽然在这之前的几年里还没有做过网络工作,但我以前在PHP和JavaScript中做了相当多的工作,现在我用C++工作,所以我对编程原理有相当的经验。 我正在开发一些博客软件,而在4WordPress和jQuery中,我根本不在乎。所以请不要浪费它。。。我通过一个简单的AJAX请求函数将一些博客条目加载到元素中。此函数的详细信息如下:(当我试图调试此问题时,它已更改为我在网上找到的一个3函数示例,没有人的“简单”代码可以工作。)

这个问题在代码下面有详细说明

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块。我对你说的“厌倦”有点困惑?你读过我的问题了吗?那么什么不起作用呢?我同意杰瑞德的观点。你的问题到处都是。你扔了一堆代码让我们找出其中的问题。您需要自己调试并缩小问题范围。没人会看着它然后告诉你它是什么。