【发布时间】:2018-05-30 23:03:40
【问题描述】:
我已经将表单的所有条目转换为一个对象,然后使用该对象填充一个数组:
var jsonObj = [];
var formData = new FormData();
$('[name="'+form+'"] *').not(':input[type=file], :input[type=button], :input[type=submit], :input[type=reset], [name="input_search"]').filter(':input').each(function(obj, v) {
var iObj = {}
var input = $(this);
var inputname = input.attr("name");
var val = input.val();
var inputval = val;
iObj[inputname] = inputval;
jsonObj.push(iObj);
});
稍后我尝试使用以下方法将 Final 数组转换为 Json 字符串:
jsonData = JSON.stringify(jsonObj);
我得到了这个字符串:
[{"s-file[]":"Prueba 3"},{"text_file[]":"ORT0000133.pdf"},{"idform":"f-gen-desk"},{"idprocess":"p-save"}]
我用这个把这个发送到 PHP 服务器,因为我用formData.append 方法发送其他元素类型文件:
formData.append('jsonData', jsonData);
var url = 'index.php';
$.ajax({
url: url,
data: formdata,
contentType: false,
processData: false,
type: 'POST',
cache: false,
error: function(xhr, status, error) {
alert(error);
},
success: function(response) {
alert(response);
}
});
在 PHP 服务器端,我尝试获取此字符串:
echo var_dump($_POST['jsonData']);
我得到了这个字符串:
string(169) "[{"s-file[]":"Prueba 3"},{"text_file[]":"ORT0000133.pdf"},{"idform":"f-gen-desk"},{"idprocess":"p-save"}]"
当我尝试将其转换为 Array 时:
测试 1:
echo '<pre>';
echo var_dump($_POST);
echo '</pre>';
输出:
array(1) {
["jsonData"]=>
string(169) "[{"s-file[]":"Prueba 3"},{"text_file[]":"ORT0000133.pdf"},{"idform":"f-gen-desk"},{"idprocess":"p-save"}]"
}
测试 2:
echo '<pre>';
$jsonData=$_POST['jsonData'];
$Data=json_decode($jsonData);
echo var_dump($Data);
echo '</pre>';
输出:我得到NULL。
我不明白我做错了什么
最后更新:
我运行这个测试:
echo '<pre>';
$jsonData = '|'.$_POST['jsonData'].'|';
$json = '|'.'[{"s-file[]":"Prueba 3"},{"text_file[]":"casa.jpg"},{"idform":"f-gen-desk"},{"idprocess":"p-save"}]'.'|';
echo $Line = mb_strlen(mb_strcut($jsonData, 0, strspn($jsonData ^ $json, "\0")));
echo '<br>';
echo $jsonData[$Line];
echo '<br>';
echo $json[$Line];
echo '<br>';
echo '</pre>';
输出
3
&
"
我可以确定链条已损坏,但我不知道为什么或如何或如何修复它。
【问题讨论】:
-
什么??抱歉,第一个你想做什么真的很难理解第二个问题是什么。
-
@Jeff 更新并纠正了我的问题。
-
1.查看和/或发布 JSON,以便我们也可以。 2.RTFM和php.net/manual/en/function.json-last-error-msg.php
-
我已经添加了这个字符串
-
WFM:3v4l.org/4e6G4
标签: javascript php jquery json