2012-05-07 6 views
1

Jqueryの選択可能な関数からAJAXを介してデータを渡し、codeigniterコントローラーでキャッチしようとしています。運がない!ajaxデータをcodeigniterコントローラーに渡す

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); 
      } 
     }); 
    } 
}); 

コントローラ

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!!! 
    } 

ビュー

json_view

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

jqueryの選択ビュー

Firebugの
<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> 

では、AJAX経由で渡される「フィルタ」データが認識されないことがわかりました。

答えて

1

はこれを試してみてください

ありがとう:私はちょうど追加

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

データ型: 'JSON'

Greatings。

+0

残念ながら、動作しませんでした –

+0

私はいくつかの進路を作った。どうやら|デリミタとしてPHPに問題が発生します。 \の前に\を入れる必要がありますので、\ |。 –

+0

どのような問題が起こりますか? –

関連する問題