Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/272.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
Ajax调用不会用php函数刷新内部html,这使得html-help?_Php_Javascript_Html_Ajax - Fatal编程技术网

Ajax调用不会用php函数刷新内部html,这使得html-help?

Ajax调用不会用php函数刷新内部html,这使得html-help?,php,javascript,html,ajax,Php,Javascript,Html,Ajax,我的网站上有以下生成内容的代码: <div class="content" id="links"> <?php displayTitle("Links"); ?> <?php displayContent("Links", $isLoggedIn); ?> </div> 内容有一个按钮,该按钮调用Javascript函数“addLink()”来编辑自身。以下是带有Ajax调用以更改内容的Javascript: function

我的网站上有以下生成内容的代码:

<div class="content" id="links">
    <?php displayTitle("Links"); ?>
    <?php displayContent("Links", $isLoggedIn); ?>
</div>

内容有一个按钮,该按钮调用Javascript函数“addLink()”来编辑自身。以下是带有Ajax调用以更改内容的Javascript:

function addLink(){
    var ajaxRequest;  // The variable that makes Ajax possible!

    if(window.XMLHttpRequest){
        ajaxRequest = new XMLHttpRequest();
    } 
    else{
        ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
    }

    ajaxRequest.onreadystatechange = function(){
            alert(ajaxRequest.readyState);
        if(ajaxRequest.readyState == 4){
            var ajaxDisplay = document.getElementById('links');
            ajaxDisplay.innerHTML = "<?php displayTitle('Links'); ?><?php displayContent('Links', $isLoggedIn); ?>"
        } 
    }

    var imgURL = document.getElementById('links_img').value;
    var linkURL = document.getElementById('links_link').value;
    var queryString = "?imgURL=" + imgURL + "&linkURL=" + linkURL;
    ajaxRequest.open("GET", "addLink.php" + queryString, true);
    ajaxRequest.send(null);
}
函数addLink(){
var ajaxRequest;//使Ajax成为可能的变量!
if(window.XMLHttpRequest){
ajaxRequest=新的XMLHttpRequest();
} 
否则{
ajaxRequest=新的ActiveXObject(“Microsoft.XMLHTTP”);
}
ajaxRequest.onreadystatechange=函数(){
警报(ajaxRequest.readyState);
if(ajaxRequest.readyState==4){
var ajaxDisplay=document.getElementById('links');
ajaxDisplay.innerHTML=“”
} 
}
var imgURL=document.getElementById('links_img')。值;
var linkURL=document.getElementById('links\u link')。值;
var queryString=“?imgURL=“+imgURL+”&linkURL=“+linkURL;
open(“GET”、“addLink.php”+queryString,true);
ajaxRequest.send(空);
}
“addLink.php”向表中添加内容,理论上允许内容函数“displayContent()”显示表中的新条目(“displayContent()”查询表)

PHP调用工作正常,但我必须刷新页面才能看到更改。 我这样做有什么问题吗?可能是因为在第一次加载页面时,内部HTML中已经存在PHP调用

非常感谢您的帮助,我是Ajax的初学者

ajaxRequest.onreadystatechange = function(){
        alert(ajaxRequest.readyState);
    if(ajaxRequest.readyState == 4){
        var ajaxDisplay = document.getElementById('links');
        ajaxDisplay.innerHTML = ajaxRequest.responseText;
    } 
}
对不起,有点更正。您正在尝试访问ajax回调函数中的预ajax php脚本。这不是它的工作原理。您需要在ajax调用后检索的数据。Ajax检索GET请求的输出,并存储在
ajaxRequest.responseText
中。试着换掉它,然后看看你得到了什么


在addLink.php中,应该添加链接,然后回显希望显示为responseText的数据。所发生的事情是,您通过addLink注入数据,但从未通过ajax在客户端正确显示数据。但是,当您刷新页面时,脚本将检索注入的内容并相应显示。

很高兴我能帮助brother。一旦你掌握了窍门,它就像哇,这很有趣=)