Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.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在表单中插入未定义数量的字段_Php - Fatal编程技术网

使用php在表单中插入未定义数量的字段

使用php在表单中插入未定义数量的字段,php,Php,我有一些JS,允许我在表单中添加任意多的字段,然后在提交表单时,必须将其保存在如下数据库中: title[1] >> video_id[1] ||| title[2] >> video_id[2] ||| ... 我需要的是一个PHP代码,它允许我获取所有这些内容并像上面那样将它们组合在一起 (请注意,值的数量可以在1到100之间),我需要将所有值聚集在一个字符串中,无论表单中有多少字段。我拥有的当前代码无法实现这一点,因为它的数量有限: $video = $_POST

我有一些JS,允许我在表单中添加任意多的字段,然后在提交表单时,必须将其保存在如下数据库中:

title[1] >> video_id[1] ||| title[2] >> video_id[2] ||| ...
我需要的是一个PHP代码,它允许我获取所有这些内容并像上面那样将它们组合在一起

(请注意,值的数量可以在1到100之间),我需要将所有值聚集在一个字符串中,无论表单中有多少字段。我拥有的当前代码无法实现这一点,因为它的数量有限:

$video = $_POST['title[1]'].' >> '.$_POST['video_id[1]'].' ||| '.$_POST['title[2]'].' >> '.$_POST['video_id[2]'].' ||| '.$_POST['title[3]'].' >> '.$_POST['video_id[3]'].' ||| ';

我该怎么做呢?

我相信这应该行得通。首先,我们创建to数组,一个用于
标题
s,一个用于
视频id
s。然后,我们使用
>
| | |
将两者连接在一起

$titles = $_POST['title'];
$video_ids = $_POST['video_id'];
$video = "";

for ($i = 0, $l = count($titles); $i < $l; $i++) {
  $video .= "{$titles[$i} >> {$video_ids[$i]} |||";
}
$titles=$\u POST['title'];
$video\u id=$\u POST['video\u id'];
$video=“”;
对于($i=0,$l=count($titles);$i<$l;$i++){
$video.=“{$titles[$i}>>{$video_id[$i]}| | |”;
}

我认为这应该有效。首先,我们创建数组,一个用于
标题
s,一个用于
视频id
s。然后,我们使用
>
|
将两者连接在一起

$titles = $_POST['title'];
$video_ids = $_POST['video_id'];
$video = "";

for ($i = 0, $l = count($titles); $i < $l; $i++) {
  $video .= "{$titles[$i} >> {$video_ids[$i]} |||";
}
$titles=$\u POST['title'];
$video\u id=$\u POST['video\u id'];
$video=“”;
对于($i=0,$l=count($titles);$i<$l;$i++){
$video.=“{$titles[$i}>>{$video_id[$i]}| | |”;
}

假设
标题的数量与
视频id的数量一样多,也许这样的事情可以为您指明正确的方向:

// Count the number of elements there are in the form
// (you want to do this outside of the for loop so it doesn't
// repeat the calculation each iteration)
$elementCount = count($_POST['title']);
$video = '';

for ($i = 1; $i <= $elementCount; $i++) {
   // Concatenate $_POST['title[i]'] >> $_POST['video_id[i]'] |||
   // to $video
   $video .= $_POST['title[' . $i . ']']    . ' >> '
           . $_POST['video_id[' . $i . ']'] . ' ||| ';
}

echo $video;
//计算表单中的元素数
//(您希望在for循环之外执行此操作,这样它就不会
//重复计算(每次迭代)
$elementCount=count($_POST['title']);
$video='';
对于($i=1;$i>$\u POST['video\u id[i]']|||
//至$video
$video.=$\u POST['title[.$i.]'].'>>'
.$_POST['video_id['.$i.].].| | | |;
}
echo$视频;

假设
标题的数量与
视频id的数量一样多,也许这样的事情可以为您指明正确的方向:

// Count the number of elements there are in the form
// (you want to do this outside of the for loop so it doesn't
// repeat the calculation each iteration)
$elementCount = count($_POST['title']);
$video = '';

for ($i = 1; $i <= $elementCount; $i++) {
   // Concatenate $_POST['title[i]'] >> $_POST['video_id[i]'] |||
   // to $video
   $video .= $_POST['title[' . $i . ']']    . ' >> '
           . $_POST['video_id[' . $i . ']'] . ' ||| ';
}

echo $video;
//计算表单中的元素数
//(您希望在for循环之外执行此操作,这样它就不会
//重复计算(每次迭代)
$elementCount=count($_POST['title']);
$video='';
对于($i=1;$i>$\u POST['video\u id[i]']|||
//至$video
$video.=$\u POST['title[.$i.]'].'>>'
.$_POST['video_id['.$i.].].| | | |;
}
echo$视频;

我知道您在问一个关于如何将多维数据结构从前端传递到PHP后端的问题。您至少有两个选择

选项1-使用多维表单数据 PHP能够解释以下结构(为简单起见,每行一个参数):

items[0][title]=Movie1
项目[0][video_id]=3123
项目[1][标题]=电影2
项目[1][video_id]=5422
当作为
POST
body或
GET
查询参数传递时,它将被解释为传递的结构将是:

$data=array(
'items'=>数组(
排列(
“标题”=>“电影1”,
'video_id'=>'3123',
),
排列(
“标题”=>“电影2”,
'video_id'=>'5422',
),
),
);
除非您可以通过执行
$data=$\u GET
(当作为查询参数传递时)或
$data=$\u POST
(当传递请求正文时)来检索它。这是一个非常简单的示例

要从HTML传递它,只需正确地命名字段(在我给出的第一个列表中,字段的名称在“
=
”的左侧,值在右侧)


基于类似的模式,您可以创建带有隐藏字段的表单(这样用户就看不到它们),并且您可以以类似的方式构造名称(这样数据结构就会得到维护)

选项2-使用JSON JSON是非常流行的格式,如果您能够将文本传递到后端,您可以序列化任何基本数据(意思是:标准对象、数组、字符串、布尔值、整数、浮点值和null),并在后端对其进行解码,如下所示:

$data=json\u decode($\u POST['data']);//假设'data'键包含json字符串

这回答了你的问题吗?

我知道你在问一个关于如何将多维数据结构从前端传递到PHP后端的问题。你至少有两个选择

选项1-使用多维表单数据 PHP能够解释以下结构(为简单起见,每行一个参数):

items[0][title]=Movie1
项目[0][video_id]=3123
项目[1][标题]=电影2
项目[1][video_id]=5422
当作为
POST
body或
GET
查询参数传递时,它将被解释为传递的结构将是:

$data=array(
'items'=>数组(
排列(
“标题”=>“电影1”,
'video_id'=>'3123',
),
排列(
“标题”=>“电影2”,
'video_id'=>'5422',
),
),
);
除非您可以通过执行
$data=$\u GET
(当作为查询参数传递时)或
$data=$\u POST
(当传递请求正文时)来检索它。这是一个非常简单的示例

要从HTML传递它,只需正确地命名字段(在我给出的第一个列表中,字段的名称在“
=
”的左侧,值在右侧)


基于类似的模式,您可以创建带有隐藏字段的表单(这样用户就看不到它们),并且您可以以类似的方式构造名称(这样数据结构就会得到维护)

选项2-使用JSON JSON是非常流行的格式,如果您能够将文本传递到后端,则可以序列化任何基本数据(即