jquery数组推送到php foreach

jquery数组推送到php foreach,php,jquery,html,arrays,Php,Jquery,Html,Arrays,我在php中遇到以下错误: Invalid argument supplied for foreach() 我试图在jquery中为输入值创建一个数组 <input type="text" class="passenger"> <input type="text" class="passenger"> <input type="text" class="passenger"> 然后在我把它发布到php之后,我想要它,所以我显示了所有的乘客 目前,这是行不通

我在php中遇到以下错误:

Invalid argument supplied for foreach()
我试图在jquery中为输入值创建一个数组

<input type="text" class="passenger">
<input type="text" class="passenger">
<input type="text" class="passenger">
然后在我把它发布到php之后,我想要它,所以我显示了所有的乘客

目前,这是行不通的。为什么不呢

foreach($passengers as $pass){
    $each_passengers = json_decode($pass);
}

实际上,您不需要对每个输入进行字符串化。首先需要做的是在表单输入中创建分组名称属性:

<input type="text" name="input[]" class="passenger" value="test1" />
<input type="text" name="input[]" class="passenger" value="test2" />
<input type="text" name="input[]" class="passenger" value="test3" />
当然,将处理它的PHP,只需将其视为正常的POST:

$inputs = $_POST['input']; // this will return an array of inputs and to access this you need a loop.

// for clarity print_r($_POST['input']);

这应该给你一个基本的想法。

$passengers
不是数组,而是字符串。您正在执行一个将json数据转换为字符串的
.stringify
var data=JSON.stringify(passengers)
在数据发送之前,然后在PHP中执行类似于
$passengers=JSON\u decode($data)
的操作。
if($(this).val()=“”){
只会添加空值
$.post('myphp_process.php', $('#form_values').serialize(), function(response){
$inputs = $_POST['input']; // this will return an array of inputs and to access this you need a loop.

// for clarity print_r($_POST['input']);