每个$u帖子的PHP

每个$u帖子的PHP,php,post,for-loop,foreach,Php,Post,For Loop,Foreach,对不起,我有点困了 我有下面的HTML表单。表单可以被尽可能多地克隆 <div class="form"> <input type="text" name="user_name_1" > <input type="email" name="user_email_1" > </div> <div class="form"> <input type="text"

对不起,我有点困了

我有下面的HTML表单。表单可以被尽可能多地克隆

    <div class="form">
       <input type="text"  name="user_name_1"  >
       <input type="email" name="user_email_1"  >
    </div>

   <div class="form">
       <input type="text"  name="user_name_2"    >
       <input type="email"  name="user_email_2"  >
   </div>

  <div id="submit-form">
      <input type='hidden' name='user_email'>
      <input type="submit"  value="Submit" />
      <input type="button" class="button" id="cloneForm" value="Clone" />
  </div>

每次单击“克隆”按钮时,“名称”字段都会增加。在PHP中,如何使用$\u POST循环遍历字段,为每个表单div创建唯一的帐户

示例PHP

   for ($i=0; $i < 5; $i++) { 
      $name = $_POST['user_name_'+$i];
      $mail = $_POST['user_email_'+$i];

   }
for($i=0;$i<5;$i++){
$name=$\u POST['user\u name\'+$i];
$mail=$\u POST['user\u email'+$i];
}
使用html:

name=“user\u email[]”

现在,
$\u POST['user\u email']
将成为一个数组。但缺点是无法控制数组的索引

因此,要在阵列中循环:

foreach ($_POST['user_email'] as $email) { 
   print $email
}
或者获取第一项:
$\u POST['user\u email'][0]

您的快速代码修复: 但代码中的错误不是HTML,而是php: 要在php中将/concat字符串组合在一起,请使用
,而不是
+

for ($i=0; $i < 5; $i++) { 
      $name = $_POST['user_name_'.$i];
      $mail = $_POST['user_email_'.$i];
}
for($i=0;$i<5;$i++){
$name=$\u POST['user\u name.$i];
$mail=$\u POST['user\u email.$i];
}
供参考:

使用html:

name=“user\u email[]”

现在,
$\u POST['user\u email']
将成为一个数组。但缺点是无法控制数组的索引

因此,要在阵列中循环:

foreach ($_POST['user_email'] as $email) { 
   print $email
}
或者获取第一项:
$\u POST['user\u email'][0]

您的快速代码修复: 但代码中的错误不是HTML,而是php: 要在php中将/concat字符串组合在一起,请使用
,而不是
+

for ($i=0; $i < 5; $i++) { 
      $name = $_POST['user_name_'.$i];
      $mail = $_POST['user_email_'.$i];
}
for($i=0;$i<5;$i++){
$name=$\u POST['user\u name.$i];
$mail=$\u POST['user\u email.$i];
}
供参考:


因为您以前不知道条目的数量,所以需要在运行时检查此项。在
$\u POST
数组中循环,并查找以用户名开头的键

请尝试使用
foreach。。。作为

foreach ($_POST as $key => value) {
    // Is this a user name?
    if (strpos($key, 'user_name_') === 0) {
        // Get the index part
        $index = substr($key, 10);

        // Get the expected POST key for email address
        $emailKey = "user_email_$index";

        // TODO: read $value and $_POST[$emailKey]
        // TODO: stuff...
    }
}

因为您以前不知道条目数,所以需要在运行时检查此项。在
$\u POST
数组中循环,并查找以用户名开头的键

请尝试使用
foreach。。。作为

foreach ($_POST as $key => value) {
    // Is this a user name?
    if (strpos($key, 'user_name_') === 0) {
        // Get the index part
        $index = substr($key, 10);

        // Get the expected POST key for email address
        $emailKey = "user_email_$index";

        // TODO: read $value and $_POST[$emailKey]
        // TODO: stuff...
    }
}
试试这个:

<div class="form">
   <input type="text"  name="user_name[]"  >
   <input type="email" name="user_email[]"  >
</div>

<div class="form">
   <input type="text"  name="user_name[]"    >
   <input type="email"  name="user_email[]"  >
试试这个:

<div class="form">
   <input type="text"  name="user_name[]"  >
   <input type="email" name="user_email[]"  >
</div>

<div class="form">
   <input type="text"  name="user_name[]"    >
   <input type="email"  name="user_email[]"  >

如果您坚持使用这样的名称(“user_name[]”更好),并且不删除行, 以下是访问它们的方式:

 for ($i=0; $i < 100; $i++) {
      if(!isset($_POST['user_name_'+$i])){
          break;// stop the cycle when there are no more rows
      }
      $name = $_POST['user_name_'+$i];
      $mail = $_POST['user_email_'+$i];

   }
($i=0;$i<100;$i++)的
{
if(!isset($\u POST['user\u name+$i])){
break;//当没有更多行时停止循环
}
$name=$\u POST['user\u name\'+$i];
$mail=$\u POST['user\u email'+$i];
}

如果您坚持使用这样的名称(“用户名[]”更好),并且不删除行, 以下是访问它们的方式:

 for ($i=0; $i < 100; $i++) {
      if(!isset($_POST['user_name_'+$i])){
          break;// stop the cycle when there are no more rows
      }
      $name = $_POST['user_name_'+$i];
      $mail = $_POST['user_email_'+$i];

   }
($i=0;$i<100;$i++)的
{
if(!isset($\u POST['user\u name+$i])){
break;//当没有更多行时停止循环
}
$name=$\u POST['user\u name\'+$i];
$mail=$\u POST['user\u email'+$i];
}

+
->
连接字符串
+
->
连接字符串string@user123 ... 这是最好的办法。只要你有完全相同的
user\u name
/
user\u email
组合,你就会成功。可能值得一提的是,他应该为for循环计算数组。@sark9012如果他在新创建的
user\u email
上使用
foreach
,并且
user\u name
数组不需要
只要它们的长度完全相同。在这些之前检查长度可能是明智的,但很可能是不必要的。w3schools不是一个参考网站。请不要访问它,也不要链接到它!真正的参考资料在这里:@atornbladw3schools在大多数情况下都足以参考。它们给出了一个非常基本的概述,并被多次用于获得基本的理解。要进行更广泛的搜索,他们可能会遇到php.net以获得更广泛的解释。@user123。。。这是最好的办法。只要你有完全相同的
user\u name
/
user\u email
组合,你就会成功。可能值得一提的是,他应该为for循环计算数组。@sark9012如果他在新创建的
user\u email
上使用
foreach
,并且
user\u name
数组不需要
只要它们的长度完全相同。在这些之前检查长度可能是明智的,但很可能是不必要的。w3schools不是一个参考网站。请不要访问它,也不要链接到它!真正的参考资料在这里:@atornbladw3schools在大多数情况下都足以参考。它们给出了一个非常基本的概述,并被多次用于获得基本的理解。对于更广泛的搜索,他们可能会在php.net上找到一个扩展的解释。。实际上,您不应该像现在这样包含
$key=>$value
,而是应该是
$key
,这样,如果您选择这样做,您可以在这个循环中使用关键字
$value
,避免浪费未使用的变量。在这种情况下,您使用与
$value
相同的
$val1[$key]
,并且永远不要使用(或计划使用)
$value
,尽管“浪费”变量并不是什么大问题,但它仍然是不必要的,可能会造成混淆。“那个变量去哪里了?”我用一种非常简单的方式编写代码,并为用户标记,因为用户可以使用任何一个变量。调查问卷看起来像是初学者。所以我把代码放进去了。这让使用
foreach
时很困惑。。实际上,您不应该像现在这样包含
$key=>$value
,而是应该是
$key
,这样,如果您选择这样做,您可以在这个循环中使用关键字
$value
,避免浪费未使用的v