gpt4 book ai didi

php - 不使用 ajax 将对象数组作为 POST 数据发送

转载 作者:行者123 更新时间:2023-12-01 04:03:02 26 4
gpt4 key购买 nike

我有一个 HTML 表单。提交表单时,将执行 jQuery 代码以附加对象数组,然后再将数据发送到服务器。每个对象都包含在表单外部检索的信息。

<form method="post" id="formID" action="test.php" accept-charset="utf-8">
<!-- form inputs -->
</form>
$('#formID').submit(function() {
var form = $(this);
$('.file').each(function(index) {
var filedata = {
name: $(this).find('.name').text(),
ordernum: index,
size: $(this).find('.size').text()
};
form.append('<input type="hidden" name="filedata[]" value="' + filedata + '"/>');
});
});

我的目标是在服务器端检索这些信息。不幸的是,当我输出 $_POST 数据时,我只得到通用的 Object 数据。

echo '<pre>';
print_r($_POST['filedata']);
echo '</pre>';

/* output */
Array
(
[0] => [object Object]
[1] => [object Object]
)

有没有办法在不使用 AJAX 请求的情况下向服务器提交表单时发送对象数组?

最佳答案

您需要对连接到 HTML 的对象进行字符串化:

form.append('<input type="hidden" name="filedata[]" value="' + JSON.stringify(filedata) + '"/>');

然后您需要在 PHP 中反序列化该值:

foreach($_POST['filedata'] as $d => $data)
{
$obj = json_decode($data);
echo '<pre>';
print_r($obj['name']);
print_r($obj['ordernum']);
print_r($obj['size']);
echo '</pre>';
}

关于php - 不使用 ajax 将对象数组作为 POST 数据发送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36421263/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com