如何在所有输入上处理$ post_ []

时间:2014-05-14 08:47:41

标签: php forms post

处理具有多个值的输入表单的理想方法是什么,而不是单独检查每个$POST_['inputname']

例如,假设我有一个这样的邀请表:

<form id="input-form" action="" method="post" >

   <input id="email_1" name="email_1" />
   <input  id="role_1"  name="role_1" />

   <input id="email_2" name="email_2" />
   <input  id="role_2"  name="role_2" />

   <input id="email_3"  name="email_3" />
   <input  id="role_3"  name="role_3" />

</form>

理想情况下,我想创建两个包含数据的数组,一个用于电子邮件地址,另一个用于角色

结果数组如下所示:

$emailArray = array(
   'email1' => "emailOneData", 
   'email2' => "emaiTwoData",
   'email3' => "emaiThreeData",
);
$RoleArray = array(
   'role1' => "roleOneData", 
   'role2' => "roleTwoData",
   'role3' => "roleThreeData",
);

不确定分割数据的最佳方法是什么。我也不想做这样的事情:

$_POST['email_1']
$_POST['email_2']
$_POST['email_3']
.....

1 个答案:

答案 0 :(得分:2)

使用$ _POST数组。

   <form id="input-form" action="" method="post" >

   <input id="email_1" name="email[]" />
   <input  id="role_1"  name="role[]" />

   <input id="email_2" name="email[]" />
   <input  id="role_2"  name="role[]" />

   <input id="email_3"  name="email[]" />
   <input  id="role_3"  name="role[]" />

</form>

在此之后你得到一个这样的数组:

echo'<pre>';
print_r($_POST['email']);
print_r($_POST['role']);
echo'</pre>';

当然,您仍然必须依赖于您的使用来逃避您的输入。

在此之后,您可以在阵列上使用普通的foreach。

$mails=array();
$count=count($_POST['role']);
for($i=0;$i<$count;$i++){
   $mails["email_".$i]=$_POST['role'][$i];
}