Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 不使用ajax将对象数组作为POST数据发送_Php_Jquery_Arrays_Forms_Input - Fatal编程技术网

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

Php 不使用ajax将对象数组作为POST数据发送,php,jquery,arrays,forms,input,Php,Jquery,Arrays,Forms,Input,我有一个HTML表单。提交表单时,将执行jQuery代码以在将数据发送到服务器之前附加一个对象数组。每个对象都包含在表单外部检索的信息 <form method="post" id="formID" action="test.php" accept-charset="utf-8"> <!-- form inputs --> </form> '; /*输出*/ 排列 ( [0]=>[对象] [1] =>[对象] ) 在向服务器提交表单时,有没有一种方

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

<form method="post" id="formID" action="test.php" accept-charset="utf-8">
    <!-- form inputs -->
</form>
'; /*输出*/ 排列 ( [0]=>[对象] [1] =>[对象] )
在向服务器提交表单时,有没有一种方法可以在不使用AJAX请求的情况下发送对象数组?

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

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>';
}
form.append(“”);
然后需要在PHP中反序列化该值:

foreach($\u POST['filedata']作为$d=>$data)
{
$obj=json_decode($data);
回声';
印刷品($obj['name']);
打印($obj['ordernum']);
印刷品($obj['size']);
回声';
}

谢谢你的回答。不幸的是,我在服务器端遇到了以下错误:
警告:json_decode()希望参数1是字符串,数组在第22行的D:\xampp\htdocs\upload\controller\testController.php中给出。您需要遍历
$\u POST['filedata']
数组中的每个值。我为您更新了我的答案不幸的是,仍然不起作用(我得到一个空白输出)。可能是
$\u POST['filedata']
中有问题?当我输出它时,我会得到
数组([0]=>{[1]=>{)
这将是一个问题,是的。如果在JS
console.log(JSON.stringify(filedata))中执行以下操作,您会在控制台中看到什么
?找出原因。字符串化数据中的倒逗号与append命令中的逗号冲突。我已将其更改为
form.append(“”;
)。然后为了正确访问成员,在PHP上也更改了此项:
$obj=(数组)json_decode($data)。也许考虑更新答案来修复这些问题。谢谢你的帮助。
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>';
}