jQuery和codeigniter帮助

时间:2010-01-08 15:46:43

标签: jquery ajax codeigniter

我正在尝试从动态数据库中获取一些数据并将其放入div,目前我的javascript文件看起来像这样,

<script type="text/javascript">
$(document).ready(function() {
    //accordians for when the AJAX loads the content

    // hides the main_menu as soon as the DOM is ready
    // (a little sooner than page load)
    $('#main_menu').hide();
        // shows the slickbox on clicking the noted link  
        $('h3#show-menu a').click(function() {
                $('#main_menu').toggle('slow');
                    return false;
        });
//try and hide the left content when it is null
    $("#left-content:empty").hide();
    //style up the scroll bar
        $('#left-content').jScrollPane();

        //do some AJAX to call the method instead of the browser
        $("a.navlink").click(function (ev) {
            $(this).toggleClass("active");
            ev.preventDefault();
            var id = $(this).attr("id")
            if ($(this).hasClass("active")) {
               $("."+id).remove();
            } else {
            //$(this).toggleClass("active");
                  var url = $(this).attr("href");
                alert(url);
                    $.ajax ({
                        url:  url,
                        type: "POST",
                        success : function (html) {
                            $('#accordion').accordion('destroy');
                            $("#accordion").append(html).accordion({active:false, header:'h2', collapsible:true});
                        }
                    });
            }
        });
        /*
                * THIS IS CODE IN QUESTION
                */
        $("a.contentlink").mouseover(function(){
            var url = $(this).attr("href");
            $.ajax ({
                url: url,
                type: "POST",
                success : function (html) {
                    $('#abstract').append(html)
                }
            });
        });
  });
</script>

有问题的代码是使用a.contentlink作为选择器的最后一个函数,我想要的是让用户用鼠标输入元素,然后触发ajax并附加结果到`#abstract'容器,当前调用该方法,

public function get_content($content_id) {
        $data['hello'] = "hello";
        $this->load->view('template/abstract', $data);
    }

目前我只是在调用函数时设置一个简单的变量,但我什么都没有回来,任何身体都能帮忙吗?

3 个答案:

答案 0 :(得分:0)

如果您使用以下代码

$this->load->view('template/abstract', $data, TRUE);

返回输出,这是AJAX请求所需的。

来源:将观看次数视为数据http://www.codeignitor.com/user_guide/general/views.html

答案 1 :(得分:0)

不正确 - 只有在将视图放入变量时才需要最后一个arg true。经验: $ view = $ this-&gt; load-&gt; view('template / abstract',$ data,TRUE);然后你可以回显$ view;

答案 2 :(得分:0)

根据Codeigniter(http://ellislab.com/codeigniter/user-guide/general/views.html):

将视图作为数据返回

第三个可选参数允许您更改函数的行为,以便将数据作为字符串返回,而不是将其发送到浏览器。如果要以某种方式处理数据,这可能很有用。如果将参数设置为true(布尔值),它将返回数据。默认行为为false,将其发送到您的浏览器。如果要返回数据,请记住将其分配给变量:

$ string = $ this-&gt; load-&gt; view('myfile','',true);

表示将视图放入变量时使用第3个参数。默认情况下,它需要FALSE ...