html
<input type="hidden" name="test[]" id="test" value= "" />
js
jQuery(document).on('click', '#target', function () {
var jsArr = ["val1", "val2", "val3"];
jQuery('input[name^="test[]"]').val(JSON.stringify(jsArr));
});
php $json = $_POST['test'];
var_dump($json);
//array(1) { [0]=> string(43) "['"val1'",'"val2'",'"val3'"]" }
var_dump($json[0]);
//string(43) "['"val1'",'"val2'",'"val3'"]"
var_dump(json_decode($json[0]));
//return NULL
我的json字符串是一个有效的json格式,所以我不知道为什么不工作。任何想法?
您正在尝试对数组使用stringify。你不能。
用于对象。因此,您应该这样做:
jQuery(document).on('click', '#target', function () {
var jsObj = {
val1: "val1",
val2: "val2",
val3: "val3"
};
jQuery('input[name^="test[]"]').val(JSON.stringify(jsObj));
});