dsizmmwnm56437180 2012-05-07 22:14
浏览 63

将ajax数据传递给codeigniter控制器

Im trying to pass data from Jquery's selectable function through AJAX and catch it in a codeigniter controller. No Luck!

Javascript

$(function() {
    $( "#selectable" ).selectable({
        selected: updatefilters,
        unselected: updatefilters
    });   
    function updatefilters(ev, ui){
        var $selected = $('#selectable').children('.ui-selected');
        var filters = $selected.map(function(){return this.id;}).get().join("|");
        $.ajax({
            type: "POST",
            url: 'updatefilters',
            data: { filters: filters },
            success: function(data){
                $('#board').replaceWith(data.content);
            }
        });
    }
});

Controller

    public function updatefilters()
    {
        $filters = $this->input->post('data');
        print_r($filters);
        $filterarray = split("|", $filters);
        $this->thread_model->create_session_filter($filterarray); 
        $threads = $this->thread_model->get_threads();
        $data['json'] = '{"content":' + $threads + '}';
        $this->load->view('json_view', $data); // See step 4!!!
    }

Views

json_view

<?php
header("Content-Type: application/json");
echo $json;
?>

jquery select view

<ol id="selectable">
    <li class="ui-state-default" id="everything">Everything!</li>
    <li class="ui-state-default" id="entertainment">Entertainment</li>
    <li class="ui-state-default" id="sci/tech">Sci/Tech</li>
    <li class="ui-state-default" id="news">News</li>
    <?php 

    if ($this->session->userdata('inactivefilter') == true) {
            $inactivefilter = $this->session->userdata('inactivefilter');
            foreach ($inactivefilter as $new)
                {
                    echo "<li class='ui-state-default' id='custom'>$new</li>";
                }
        }
    ?>
</ol>

in Firebug, I can see that the "filter" data being passed via AJAX is not being recognized.

Thanks

  • 写回答

1条回答 默认 最新

  • dpea85385 2012-05-07 22:20
    关注

    Try this:

       $.ajax({
            type: "POST",
            url: 'updatefilters',
            dataType: 'json',
            data: { filters: filters },
            success: function(data){
                $('#board').replaceWith(data.content);
            }
        });
    

    I just added: dataType: 'json'

    Greatings.

    评论

报告相同问题?

悬赏问题

  • ¥15 HLs设计手写数字识别程序编译通不过
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向
  • ¥15 如何用python向钉钉机器人发送可以放大的图片?
  • ¥15 matlab(相关搜索:紧聚焦)
  • ¥15 基于51单片机的厨房煤气泄露检测报警系统设计
  • ¥15 Arduino无法同时连接多个hx711模块,如何解决?
  • ¥50 需求一个up主付费课程
  • ¥20 模型在y分布之外的数据上预测能力不好如何解决