从PHP回显HTML以在网页上的ajax请求中显示

时间:2016-08-12 10:16:39

标签: javascript php html ajax

我有一个在网站上显示的科学出版物列表,并希望在用户到达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';

2 个答案:

答案 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调用。