我正在尝试将表单输入作为数组发送到php脚本
function submit_form(){
var arr = [];
var key, val ;
$('#form input').each(function(){
key = $(this).attr('id');
val = $(this).val();
arr[key] = val;
})
alert(arr['username']); // check to see if array is not empty
var jsondata = JSON.stringify(arr);
$.post(base_url+'profile/edit_profile/<?php echo $profile_username; ?>' , {data : jsondata }, function(){
})
}
在php脚本
上$data = json_decode($_post['data']);
var_dump($data);
exit;
这是结果
array (size=0)
empty
答案 0 :(得分:3)
当您使用Object时,您正在使用数组。
var obj = {};
var key, val ;
$('#form input').each(function(){
key = $(this).attr('id');
val = $(this).val();
obj[key] = val;
});
JSON方法将忽略数组的非数字属性。
虽然不使用id
属性,但请使用name
,然后使用.serialize()
。
var data = $('#form input').serialize();
答案 1 :(得分:0)
首先需要进行基本调试。在解码数据之前,请将其转储,以确保数据正确无误:
$data = $this->input->post('data');
var_dump($data);
$array = json_decode($data);
var_dump($array);
exit;
要学习的经验教训: