Я столько раз пытался отладить этот код, но, похоже, он не работает вообще. Я использую выбранный JQuery в моем приложении.
Вот мой код:
$(document).ready(function(){
var status = [];
var method = $(this).attr('data-method');
var config = {
'.chosen-select' : {},
'.chosen-select-deselect' : {allow_single_deselect:true},
'.chosen-select-no-single' : {disable_search_threshold:10},
'.chosen-select-no-results': {no_results_text:'Oops, nothing found!'},
'.chosen-select-width' : {width:"95%"}
}
for (var selector in config) {
$(selector).chosen(config[selector]);
}
$("#test").chosen().change(function(e, params){
console.clear()
$("#test :selected").each(function(i,selected)
{
status[i] = $.trim($(selected).text());
})
console.log(status);
var new_var = JSON.stringify(status);
$.ajax({
type: "POST",
url: "<?php echo site_url('request/result') ?>",
data: { data: new_var }
}).done(function(data) {
alert( "Data Send:");
}).fail(function() {
alert( "Data Not Sent" );
});
e.preventDefault();
}); });
New_var содержит значения массива, но я не могу опубликовать его значение на моем контроллере.
контроллер: request.php
public function result(){
echo json_encode($status);
die();
}
Я отлаживаю его на Firefox на вкладке сети, я вижу значения параметров, но на вкладке ответа он возвращает НОЛЬ Кажется, я не могу решить проблему почти неделю. У меня нет идей, как это решить, потому что я новичок в AJAX
вам нужно прочитать из массива $ _POST:
public function result(){
// Your variable is here:
var_dump($_POST['data']);
// echo json_encode($_POST['data']);
die();
}
Пожалуйста, не забудьте очистить $ _POST, e. г. с помощью filter_input
Других решений пока нет …