ajax() considering value null jQuery


ajax() considering value null jQuery

我试图从div获得所有输入数据并将其发送处理(在PHP中)。然而,即使我确定,因为我在调用ajax()函数之前已经控制台记录了变量bookeeDetails,也有一个值。

$("#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未被填充的情况,因为在填充循环完成之前请求正在发送?如果是这样,我该如何阻止这种情况的发生?

既然我看到提交在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>