我正在尝试从div
获取所有输入数据并将其发送以进行处理(在PHP中)。但是,即使我确定,因为我在调用bookeeDetails
函数之前控制台记录了变量ajax()
,因此有一个值。
$("#finalsubmit").click(function () {
var bookeeDetails = [];
$("#bookeeDetails :input").each(function () {
bookeeDetails[$(this).attr('name')] = $(this).val();
});
console.log(bookeeDetails);
$.ajax({
url: url,
type: 'post',
data: {
bookee: bookeeDetails
},
success: function (response) {
$("#info").html(response);
}
});
});
基本上,我要在PHP脚本中访问$_POST['bookee']['keyname']
。不幸的是,当发送请求时,PHP中没有收到任何信息。我已经测试了固定值,这是有效的,我100%肯定bookeeDetails
包含数据。
这是否因为在填充循环完成之前发送请求而未填充bookeeDetails
的情况?如果是这样,我该如何阻止这种情况发生?
答案 0 :(得分:2)
因为我看到finalsubmit
中的提交,我猜您在那里有表格,所以您可能正在寻找 serializeArray
:
$( '#bookeeDetails' ).serializeArray();
希望这有帮助。
var data = $( '#bookeeDetails' ).serializeArray();
var books = {};
$.each(data, function(i, obj){
books[obj.name] = obj.value;
})
console.log(books);
console.log(books['title']);
console.log(books['autor']);

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id='bookeeDetails'>
<input type="text" name="title" value="Biography">
<br>
<input type="text" name="autor" value="Jack">
<br>
<input type="text" name="edition" value="2016">
</form>
&#13;