PHP处理$_POST表单提交后JSON仅存储Lng字段问题如何解决?
问题原因
- 后端提交处理逻辑的循环存在错误:遍历所有字段的循环中,每次都直接给
$temp变量赋值为仅包含当前字段的新数组,前序字段的内容会被直接覆盖,循环结束后$temp里仅会保留最后一个字段(也就是Lng)的键值对,最终存入JSON的就只有这一个字段。 - 代码存在语法疏漏:
$arr["data"] =$data1语句末尾缺失分号,在部分PHP运行环境下会直接引发报错。
修复方案
把后端提交处理的代码替换为如下内容即可:
$data1 = $arr["data"]; $data = $arr["columns"]; $pars = explode(',', $data); // 先初始化空数组存储整行数据 $temp = []; foreach ($pars as $value) { // 往同一个数组里追加当前字段的键值对,不覆盖整个数组 $temp[$value] = $_POST[$value]; } // 写入数据 array_push($data1, $temp); $arr["data"] = $data1; if (file_put_contents('tables/test.json', json_encode($arr, JSON_PRETTY_PRINT))) { echo 'submitted'; } else { echo 'failed'; }
内容的提问来源于stack exchange,提问作者Maharlikan
相关产品推荐
相关产品推荐

