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経由で渡される「フィルタ」データが認識されないことがわかりました。
残念ながら、動作しませんでした –
私はいくつかの進路を作った。どうやら|デリミタとしてPHPに問題が発生します。 \の前に\を入れる必要がありますので、\ |。 –
どのような問題が起こりますか? –