我试图使用控制器函数来读取ajax发送的JSON对象,但是我无法读取php中的JSON。
这是jquery脚本。我试过设置
$(document).on('ready', function(){
$('#contact-form').on('submit', function () {
var form = $(this),
url = "<?php echo site_url('home_controller/processContactForm'); ?>",
method = form.attr('method'),
data = {},
form.find('[name]').each(function(index,name){
var input = $(this),
name = input.attr('name'),
value = input.val();
data[name] = value; // Looping through each input inside the form and adding the values to the data Object
)};
$.ajax({
url: url,
type: method,
data: data,
success:function(response){
console.log(data);
}
});
return false;
});
});
这是控制器功能:
public function processContactForm()
{
$data = json_decode($_POST['data']);
echo '<pre>';
print_r($data);
echo '</pre>';
var_dump($data);
}
Var转储正在打印 null
答案 0 :(得分:0)
public function processContactForm()
{
if(isset($_POST['data'] && $_POST['data'] != NULL) {
$data = json_decode($_POST['data']);
echo '<pre>';
print_r($data);
echo '</pre>';
var_dump($data);
}
}
答案 1 :(得分:0)
将您的ajax功能更改为:
$.ajax({
url: url,
type: method,
data: { data: data }, // create an object with a property of "data"
success:function(response){
console.log(data);
}
});
data
设置对象中的ajax
属性会将数据数组/对象的键(属性名称)转换为$_POST
个键。