对不起,如果这是一个非常简单的问题,但我找不到与此相同的任何主题。
我们假设我们正在设置像
这样的值 <li><input type="checkbox" name="only_admin" value="1" /> Only Admin</li>
<li><input type="checkbox" name="can_request" value="1" /> Can Request</li>
<li><input type="checkbox" name="can_offer" value="1" /> Can Offer</li>
<li><input type="checkbox" name="can_post" value="1" /> Can Post</li>
<li><input type="checkbox" name="is_maintenance" value="1" /> Is Maintenance</li>
然后在我们的服务器端,我们把这个
if (isset($_POST['only_admin'])) {
$permission['only_admin'] = $_POST['only_admin'];
}
if (isset($_POST['can_request'])) {
$permission['can_request'] = $_POST['can_request'];
}
if (isset($_POST['can_offer'])) {
$permission['can_offer'] = $_POST['can_offer'];
}
if (isset($_POST['can_post'])) {
$permission['can_post'] = $_POST['can_post'];
}
if (isset($_POST['is_maintenance'])) {
$permission['is_maintenance'] = $_POST['is_maintenance'];
}
上面的代码是否有更简单的版本?
谢谢! Adam Ramadhan
ps 如果已经有一个关于此的好主题,请给我贴上标签。*
答案 0 :(得分:10)
$values = array("only_admin",
"can_request",
"can_offer",
"can_post",
"is_maintenance");
foreach($values as $v)
{
if(isset($_POST[$v]))
{
$permission[$v] = $_POST[$v];
}
}
答案 1 :(得分:4)
有一些方法可以简化它,看看这个...这不是唯一的解决方案,但它是一个干净的解决方案:
$permissions = array(
'only_admin' => 0,
'can_offer' => 0,
'can_request' => 0,
'can_post' => 0,
'is_maintenance' => 0,
);
foreach(array_keys($permissions) as $permission){
if(isset($_POST[$permission])){
$permissions[$permissions] = $_POST[$permission];
}
}
你拥有的权限越多,这就越强大了!
答案 2 :(得分:2)
需要更多的工作,但为什么不使用:
$permission = $_POST;
您还可以添加in_array检查,以便$permission
仅获取特定键,以防表单发送更多值。
答案 3 :(得分:1)
我认为您可以轻松地为此编写函数,因为$ _POST也是一个全局变量。例如:
<?php
function check_permissions() {
$permissions_array = array("only_admin", "can_request", "can_offer", "can_post", "is_maintenance");
foreach ($_POST as $p => $value)
{
if (in_array($p, $permissions_array))
{
$permission[$p] = $value;
}
return $permission;
?>
} ?&GT;
答案 4 :(得分:1)
请尝试:
<li><input type="checkbox" name="permission[only_admin]" value="1" /> Only Admin</li>
<li><input type="checkbox" name="permission[can_request]" value="1" /> Can Request</li>
<li><input type="checkbox" name="permission[can_offer]" value="1" /> Can Offer</li>
<li><input type="checkbox" name="permission[can_post]" value="1" /> Can Post</li>
<li><input type="checkbox" name="permission[is_maintenance]" value="1" /> Is Maintenance</li>
$permission[] = $_POST['permission'];
然后根据$permission[]
过滤未设置的值
答案 5 :(得分:-1)
$permission['only_admin'] = isset($_POST['only_admin']);
等等。