在 PHP AJAX post 上获取空值
Getting Null Values on AJAX post in PHP
我试了很多次来调试这段代码,但它似乎根本不起作用。我在我的申请中使用了 chosen 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 保存数组值,但我不能 post 它的值到我的控制器。
控制器:request.php
public function result(){
echo json_encode($status);
die();
}
我正在 firefox 上的网络选项卡上调试它我可以看到参数上的值但是在响应选项卡上它 returns NULL 我似乎无法解决问题将近一个星期。我不知道如何解决它,因为我是 AJAX
的新手
您需要从 $_POST 数组中读取:
public function result(){
// Your variable is here:
var_dump($_POST['data']);
// echo json_encode($_POST['data']);
die();
}
请记得清理$_POST,e。 G。使用 filter_input
我试了很多次来调试这段代码,但它似乎根本不起作用。我在我的申请中使用了 chosen 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 保存数组值,但我不能 post 它的值到我的控制器。
控制器:request.php
public function result(){
echo json_encode($status);
die();
}
我正在 firefox 上的网络选项卡上调试它我可以看到参数上的值但是在响应选项卡上它 returns NULL 我似乎无法解决问题将近一个星期。我不知道如何解决它,因为我是 AJAX
的新手您需要从 $_POST 数组中读取:
public function result(){
// Your variable is here:
var_dump($_POST['data']);
// echo json_encode($_POST['data']);
die();
}
请记得清理$_POST,e。 G。使用 filter_input