gpt4 book ai didi

javascript - 为什么这个数组没有被传递?

转载 作者:行者123 更新时间:2023-12-02 23:10:31 24 4
gpt4 key购买 nike

将表单数据发送到 PHP 脚本进行处理的简单脚本。关联数组中的数据和控制台的输出表明它存在。使用 jquery AJAX 函数传递数据,但 PHP 脚本不接收数组。但是,如果我将数据硬编码到函数中,数据就会被传递。

如果尝试将 AJAX 功能“方法”设置为 POST 并删除该选项。我尝试了不同的数组格式。将数组作为硬编码数组的一部分传递。

Javascript端

function saveInformation(e) {
var d = []
var f = $(e)[0].id; //Form name
var formData = $('#'+f).serializeArray();

formData.forEach(function(item){
d[item.name] = item.value;
})


console.log('data',d)

$.ajax({
data: d,
url: "TableUpdate.php"
})
.done(function(e) { $('#agentGeneralInfoTitle').text('Agent General Information (Saved)'); console.log(e);})
.fail(function(e) {
alert("save failed\n" + e.responseText); console.log(e);
});

}

console.log 命令显示变量 d 中的数据。所有数据均已存在且格式正确。

PHP端

<?
require_once('/var/www/Debugging/ChromePhp.php');
chromePHP::log($_REQUEST,$_POST);
:
:
:
?>

这会打印出“[],[]”。它正确完成并确定数据不存在。

我希望传递数据并且 chromePHP::log 显示包含数据的数组。

最佳答案

var d 应该是一个对象而不是数组。

数组仅在 JavaScript 中具有数字索引

改变

var d = []

var d = {}
<小时/>

同时使用 serialize() 而不是 serializeArray() 会使其更简单,因为您不需要循环并创建 d完全没有

  function saveInformation(e) {
// assuming `e` is form element
var formData = $(e).serialize();

$.ajax({
data: formData ,
url: "TableUpdate.php"
})
.done(function(e) { $('#agentGeneralInfoTitle').text('Agent General Information (Saved)'); console.log(e);})
.fail(function(e) {
alert("save failed\n" + e.responseText); console.log(e);
});

}

关于javascript - 为什么这个数组没有被传递?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57383150/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com