【发布时间】:2017-01-17 06:37:25
【问题描述】:
我尝试了很多次来调试这段代码,但它似乎根本不起作用。我在我的应用程序上使用选择的 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 上的网络选项卡上对其进行调试,我可以在参数上看到值,但在响应选项卡上它返回 NULL 我似乎无法解决这个问题将近一周。我不知道如何解决它,因为我是 AJAX 新手
【问题讨论】:
-
你还尝试了什么:比如
echo json_encode($_POST['data']); -
您的问题缺乏细节,这将有很大帮助。您的问题需要明确解释您的问题是什么以及您期望 Ajax 返回什么。但是,请查看 PHP 中的结果函数。您正在尝试访问不在函数范围内的变量,因此您实际上没有传递 JSON_Encode 数据。这将导致 json_encode 不返回任何数据。这可能是您的问题,但是没有更多信息,很难说。
标签: javascript php jquery ajax jquery-chosen