我有一个在网站上显示的科学出版物列表,并希望在用户到达10个出版物列表的末尾时加载其他内容,并按下按钮以加载另外10个出版物。
我进行Ajax调用以加载接下来的10个出版物
我正在尝试显示从php脚本回显的html代码,但我似乎无法显示html。在控制台中,我得到了' 1'作为我的HTML的值。我不明白: 1.为什么我得到了' 1&#39 ;; 2.此外,通过javascript显示回显HTML是一种好习惯吗?
JS(AJAX调用):
var resp = xmlhttp.responseText;
var respArray = resp.split('|');
var response = respArray[1];
var publicationList = respArray[0];
var currentHTML = document.getElementById('showPubs').innerHTML;
if(response == '1'){
console.log('more publications available');
var currentHTML = document.getElementById('showPubs').innerHTML;
document.getElementById('showPubs').innerHTML += publicationList;
}else{
document.getElementById('showPubs').innerHTML += '<div id="noMorePub">No more publications</div>';
}
PHP:
$recentPublications .= '
<div id="pub'.$articleID.'" class="pub20">
<div class="divImg">'.$avatarPathHTML.'</div>
<div class="contentPub">
<div class="datepub">
<div class="fullName"><a class="sfullNme" href="2profile.php?username='.$articleUsername.'">'.$fullname.'</a></div>
<div class="date">'.$submitDate.'</div>
</div>
<div class="divLink">
<a href="testPage3.php?article='.$articleID.'" class="pubLink">'.$articleTitle.'</a>
</div>
<div class="authorString">'.$author_string.'</div>
</div>
<hr class="pubSeparator">
</div>
';
echo $recentPublications.'|1';
答案 0 :(得分:1)
我想更好的想法是不要使用这个肮脏的黑客
echo $recentPublications.'|1';
和
var respArray = resp.split('|');
var response = respArray[1];
var publicationList = respArray[0];
if(response == '1'){
您可以查看回复的长度。如果响应长度等于0个字节,则其他出版物不可用。
答案 1 :(得分:0)
良好做法是分开顾虑。因此,在您的示例中,服务器端脚本应该只提供要显示的数据(例如,通过JSON),并且前端应该对特定端点进行AJAX调用。