PHP for循环为$ _POST

时间:2014-12-03 20:03:12

标签: php post foreach

抱歉这个菜鸟问题。但我被困在这里。

这是我的HTML表单,其中用户表单div可以克隆到尽可能多的。 #submit-form div有一些隐藏的值,这些值对所有人都是通用的。

HTML -

 <div class="user-form">
    <input type="text" autocomplete="off" name="name[]"  >
    <input type="email"  autocomplete="off" name="mail[]"  >
 </div>

 <div class="user-form">
    <input type="text" autocomplete="off" name="name[]"  >
    <input type="email"  autocomplete="off" name="mail[]"  >
 </div>

 <div id="submit-form">
    <input type='hidden' name='refer_user_id'  value='<?php echo $refer_user_id ?>'>
    <input type='hidden' name='refer_user_email' value='<?php echo  $refer_user_email ?>'>
    <input type="submit"  value="Invite" />
    <input type="button" class="button" id="clonetrigger" value="Clone" />
</div>

我使用ajax提交表单。基本上我想使用名称和电子邮件字段创建帐户。在PHP中如何使用foreach循环遍历名称和电子邮件字段,以便我可以创建唯一的帐户?

我的print_r($ _ POST);数组看起来像这样。

Array
(
  [name] => Array
    (
        [0] => david
        [1] => Mark
        [2] => cindy
    )

  [mail] => Array
    (
        [0] => david@abc.com
        [1] => mark@abc.com
        [2] => cindy@abc.com
    )

  [refer_user_id] => 2
  [$refer_user_email] => test@abc.com
)

5 个答案:

答案 0 :(得分:2)

创建一个循环,其迭代次数等于提交的名称/电子邮件对的数量,然后使用循环计数器访问每个用户的值。

for ($i = 0; $i < count($_POST['name']); $i++) {
{
    $name = $_POST['name'][$i];
    $mail = $_POST['mail'][$i];
    // Process the new user
}

答案 1 :(得分:2)

使用foreach遍历其中一个数组,使用第二个数组的键。

 foreach($_POST['name'] as $key =>$name ){
    $mail = $_POST[$key];
 }

答案 2 :(得分:1)

foreach($_POST['name'] as $key => $val) {
  echo $val
}

foreach($_POST['mail'] as $key => $val) {
  echo $val
}

循环使用这些元素的最简单方法。您可以使用$ _POST ['refer_user_id']引用其他元素。虽然这适用于foreach的目的,但上面发布的for循环更有效,所以我建议使用它。

http://php.net/manual/en/control-structures.foreach.php在此处阅读更多内容。

答案 3 :(得分:1)

您可以使用array_combine功能:

$data = array_combine($_POST['name'],$_POST['mail']);
foreach($data as $name=>$mail){
  print $name;
  //...
}

请参阅array_combine

答案 4 :(得分:1)

您还可以使用自动生成表单项的JavaScript为其提供一个名称,该名称将导致链接php对象。即

 <div class="user-form">
    <input type="text" autocomplete="off" name="user[1][name]"  />
    <input type="email"  autocomplete="off" name="user[1][mail]"  />
 </div>

 <div class="user-form">
    <input type="text" autocomplete="off" name="user[2][name]"  />
    <input type="email"  autocomplete="off" name="user[2][mail]"  />
 </div>

然后你可以通过foreach($_POST['user'] as $key=>$value)等来循环对...