抱歉这个菜鸟问题。但我被困在这里。
这是我的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
)
答案 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)
等来循环对...