【问题标题】:Appending data to div tag inside content using jquery使用jquery将数据附加到内容内的div标签
【发布时间】:2013-11-15 03:15:48
【问题描述】:

我正在尝试twitter pagination 使用 JQuery。我有一个搜索页面(包含表单),它将查询数据库并将其显示在搜索结果页面中。

当我试图在下面的代码中点击 div 标签(下面页面中的更多按钮)时,它应该只将数据附加到 #results,而不是整个页面与 #content 一起加载的附加数据看起来同一页重叠在另一页上。当我点击More 按钮时,从数据库加载数据并加载适当结果的逻辑。唯一的问题是正确显示结果

这是我的代码

<body>
    <?php $this->load->view('includes/topbar'); ?>
    <?php $this->load->view('includes/menu'); ?>      
    <?php $this->load->view('includes/left'); ?>        

  <div id="contentwrap">
    <div id="content">

        <div id="results">
                <?php
                foreach($this->data['latest_messages'] as $message)
                {
                    echo $message->uacc_email . ' - ' . '<br />';
                }
                ?>
        </div>
    <div id="more_button">
        More
    </div>
  </div>     
  </div>
    <?php $this->load->view('includes/right'); ?>   
    <?php $this->load->view('includes/foot'); ?> 
 </body>

这是我的 jquery 在&lt;head&gt; 部分的代码。 auth_public/get_results/ 将从数据库中获取结果。

    <script type="text/javascript">
      $(document).ready(function(){
      var num_messages = <?=$num_messages?>;
      var loaded_messages = 0;
        $("#more_button").click(function(){
            loaded_messages += 10;
            $.get("<?php echo $base_url;?>" + "auth_public/get_results/" + loaded_messages, function(data){
                $("#results").append(data);

            });

            if(loaded_messages >= num_messages - 10)
            {
                $("#more_button").hide();
                //alert('hide');
            }
        })
    })
</script>

我尝试过使用跨度。但是没有运气,行为是相同的。有人帮忙吗?

【问题讨论】:

  • 您是否在 devtools 中查看过 ajax 调用返回的内容?听起来它正在返回一个完整的 html 页面,您需要在附加之前提取 #results 的内容。
  • 并从 get_messages.php 发布代码

标签: php jquery codeigniter


【解决方案1】:

get_results 的问题,我猜它以 html 的形式返回输出,而不是作为“jammykam”提到的 json 输出

转到auth_public 查找函数get_results 并替换应如下所示的输出行$this-&gt;load view($your_view,$data);

或者这个$this-&gt;parser-&gt;parse($your_view,$data);

echo json_encode($data);

【讨论】:

  • 酷..它工作正常,但它显示整个 json 对象。如何重新格式化?
  • @Vikram 使用 jquery 的 parseJSON()
  • 抱歉回复晚了,您可以在 get 内的数组中循环数据:var length = data.length; for (var i = 0; i &lt; length; i++) { $("#results").append(data[i]); }
猜你喜欢
  • 1970-01-01
  • 2011-09-25
  • 2011-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多