我有一个表单字段,如下所示:
<input name="cm[3]" value="0.0000">
我使用serializeData函数将其发布到安全的ajax函数:
var formData = $(form).serialize();
console.log(formData);
secureajax.securecall({
url: '/ajax/quadrants/thresholds-write',
data: formData,
success: function(data) {
... etc
请注意,我正在将数据转储到控制台......
如果我运行此代码,然后立即在/ ajax / quadrants / thresholds-write页面转储$ _POST数组,我在控制台上看到我的输入值(序列化数据转储)但是post变量总是显示默认值,在这种情况下,&#34; 0.0000&#34;。
控制台代码段:
quad_token=b765def8e66df0d473148310175e8a6e&systemsId=12&selectedString=1&cm%5B3%5D=9999...
转储$ _POST的PHP:
Array
(
[systemsId] => 12
[selectedString] => 1
[cm] => Array
(
[3] => 0.0000
[5] => 1.0000
[7] => 0.0000
CM [3]的默认值是0.0000,但是当我输入9999等内容时,我在js中看到,但就好像系统正在读取值标签而不是输入的值。或者,我认为数组表单字段名称没有处理,但那么数组的格式如何正常,只是值搞砸了?
有什么想法吗?
注意:secureajax是一个自定义函数,为ajax调用提供CSRF功能。
答案 0 :(得分:0)
我发现了这个问题。我有多个div,一次只显示一个div,并且数组变量没有考虑多个表单,所以最后一个表格的变量都覆盖了它们。离开这里即使它是一个错误,因为其他人可能会这样做。这很容易被忽视。