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。一旦你掌握了窍门,它就像哇,这很有趣=)