【问题标题】:How to populate a div on click with jQuery, AJAX & CodeIgniter如何使用 jQuery、AJAX 和 CodeIgniter 在点击时填充 div
【发布时间】:2013-12-14 13:59:03
【问题描述】:

我正在尝试用表格填充 DIV。表格需要设置样式,并且样式必须在控制器中完成,然后作为 HTML sn-p 传递给 AJAX 请求,以显示在结果 DIV 中。我在实施中遇到了多个问题。下面是代码和总结。我要求您告诉我应该在generate_suggestions 函数中添加什么以使其正常工作。

我之前在视图中是如何做到的

  <table>
    <!-- Function that splits the array in $pages into the first 5 movie suggestions -->
    <?php foreach ($pages->result() as $row): ?>
      <a style="display:block" href="<?php echo base_url('core/detail/'.$row->id) ?>">
        <div id="suggested" onmouseover="" style="cursor: pointer;">
          <div id="info">  
              <p><b><?php echo $row->name ?></b></p>
          </div>
          <div class="details">
                <p><?php echo $row->summary ?></p>
          </div>
        </div    
      </a>    
    <?php endforeach; ?>
  </table>

这就是我之前设置行数组的样式。所以基本上我需要的是以某种方式将此样式放入controller,然后将其传递给请求,以便它可以显示已经设置样式的结果。

控制器

public function generate_suggestions($start = 0, $count = 5) {

    $movies = $this->db->query('SELECT * FROM movies LIMIT ' . $start . ',' . $count);
    //Here I need to put the code that styles the contents of the array so it gets properly displayed in the div

在第一次加载时,我从我的数据库中取出前 5 部电影。现在我需要将行设置为表格并将表格发送回请求。

查看

<div id="listB"></div>

</script><script type="text/javascript">
    var nextstart = 6;
    var movies_per_page = 5;

    $( "#next_btn" ).click(function() {

        $.get("core/generate_suggestions/"+nextstart+"/" + movies_per_page,
        function(data) {

            $( "#listB" ).html(data);

            nextstart += movies_per_page; 
        });
    });
</script>

</body>

出于某种原因,我需要在视图中将脚本插入到body 的末尾。当我把它放在头上时,当我单击next_btn div 时,什么也没有发生。该脚本从我的controller 调用generate_suggestions 函数,然后将结果显示在div listB

感谢大家的阅读和帮助。我真是一头雾水。

【问题讨论】:

  • 请检查您是否将参数从视图获取到函数,因为您使用 $.get() 方法应该使用 $post()
  • 我需要从函数中获取一些东西。我只是不知道如何将它传递给 $get.. 它应该在 echo 中还是什么,这就是我想要弄清楚的
  • 在查看页面的脚本中回显 $movies 和 alert ....
  • 请问我该怎么做?它属于这里吗function(data) { $( "#listB" ).html(data); nextstart += movies_per_page; });
  • function(data) { alert(data);
    $( "#listB" ).html(data);
    nextstart += movies_per_page;
    });

标签: jquery html css ajax codeigniter


【解决方案1】:

当您想使用 JQuery 从服务器添加一些信息时,您可以使用 JQuery 方法的简单方法 load()

例子:

$( "#next_btn" ).load( "core/generate_suggestions/"+nextstart+"/" + movies_per_page );

更多信息:http://api.jquery.com/load/

在 CodeIgniter 中,控制器应该调用 generate_suggestions,并且对于返回的数据(电影),您必须调用视图并插入它们。该视图应包含您的 html+php.Like:

$data['movies'] = $movies->result(); $this->load->view("yourview", $data);

http://ellislab.com/codeigniter/user-guide/general/views.html

【讨论】:

  • 是的,但我需要知道我应该将我试图传递回请求的数据包含在什么中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-07-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多