![](/img/trans.png)
[英]Adding subkey-value pairs to existing array (or JSON object?) in javascript
[英]Adding Javascript Object inside existing JSON Array
抱歉,如果这看起来很明显,但我已经迷失了几个小时。
我正在尝试创建一个 javascript object 并将其传递给 PHP 页面使用 JQuery's.Z2705A83A39A0659EDA5264。
JS object 看起来像:
let transactions = {};
let counter = 0;
($.each loop) {
transactions[counter] = {
"code": code,
"agency_number": agency_number,
"agency_code": agency_code
};
counter++;
}
然后我需要将它与另一个字段一起添加到 JSON 数组
let formData = [{}];
formData.push({name: 'page', value: aPage});
formData.push({name: "transactions", value: JSON.stringify(transactions)});
AJAX 调用如下:
let ajax_call=$.ajax({
datatype: "json",
method: "POST",
url: "theURL",
data: formData,
timeout: 15000,
async: true
});
ajax_call.done(function( data, textStatus, jqXHR ) {
... blah ...
在 JSON.stringify 中包装事务似乎不起作用。 在 PHP 端,事务的 POST 值如下所示:
"{0:{CODE:300,AGENCY_NUMBER:20,AGENCY_CODE:50}}"
没有滴答声,这不允许我使用 json_decode。 它按预期输出“语法错误”。
将其作为事务传递,没有 JSON.stringify 会产生结果:
formData.push({name: "transactions", value: transactions});
=
"[OBJECT OBJECT]"
这是一个字符串表示,而不是实际的 object 可以使用。
到目前为止,我没有对 POST 值做任何事情。 这就是 PHP 页面接收它们的方式。
任何帮助将不胜感激。
谢谢!
编辑 - 这里的代码实际上没有任何问题。 我限制引号以及其他特殊字符在 IIS 中访问 web 服务器。 这就是为什么它在没有他们的情况下得以实现。 一切都很好,我只是愚蠢。
否则谢谢大家的帮助。
JQuery ajax.data 可以接受常规的 JS 对象。 您不必创建名称:值对和对任何内容进行字符串化。
这应该会更好:
const formData = {
page: aPage,
transactions: []
};
($.each loop) {
formData.transactions.push({
"code": code,
"agency_number": agency_number,
"agency_code": agency_code
})
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.