HTML示例:
<form method="post" id="form" action="form_action.php">
<input name="email" type="text" />
</form>
用户填写输入字段:dfg@dfg.com
echo $_POST['email']; //output: dfg@dfg.com
表单中每个输入的名称和值都将发送到服务器。 有没有办法获得名称属性? 所以像..
echo $_POST['email'].name; //output: email
编辑: 澄清对我的问题的一些疑惑;
我们的想法是使用交换机动态验证每个输入。我使用一个单独的验证类来保持一切清洁。这是我最终结果的一个简短例子:
//Main php page
if (is_validForm()) {
//All input is valid, do something..
}
//Separate validation class
function is_validForm () {
foreach ($_POST as $name => $value) {
if (!is_validInput($name, $value)) return false;
}
return true;
}
function is_validInput($name, $value) {
if (!$this->is_input($value)) return false;
switch($name) {
case email: return $this->is_email($value);
break;
case password: return $this->is_password($value);
break;
//and all other inputs
}
}
感谢raina77ow和其他所有人!
答案 0 :(得分:18)
您可以在foreach
循环中处理$ _POST以获取名称及其值,如下所示:
foreach ($_POST as $name => $value) {
echo $name; // email, for example
echo $value; // the same as echo $_POST['email'], in this case
}
但是您无法从$_POST['email']
值获取属性名称 - 它是一个简单的字符串,并且它不存储其“原点”。
答案 1 :(得分:1)
foreach($_POST as $key => $value)
{
echo 'Key is: '.$key;
echo 'Value is: '.$value;
}
答案 2 :(得分:1)
如果你想动态地做,你可以这样做:
foreach ($_POST as $key => $value)
{
echo 'Name: ', $key, "\nValue: ", $value, "\n";
}
答案 3 :(得分:1)
使用object/array
:
foreach
foreach($_POST as $key => $items) {
echo $key . "<br />";
}
或者您可以使用var_dump
或print_r
来调试arrays
或objects
等大型变量:
echo '<pre>' . print_r($_POST, true) . '</pre>';
或者
echo '<pre>';
var_dump($_POST);
echo '</pre>';
答案 4 :(得分:1)
实际上我发现了一些可能对你有用的东西,看看这个 -
http://php.net/manual/en/function.key.php
此页面显示以下代码,
<?php
$array = array(
'fruit1' => 'apple',
'fruit2' => 'orange',
'fruit3' => 'grape',
'fruit4' => 'apple',
'fruit5' => 'apple');
// this cycle echoes all associative array
// key where value equals "apple"
while ($fruit_name = current($array)) {
if ($fruit_name == 'apple') {
echo key($array).'<br />';
}
next($array);
}
?>
会给你输出,
fruit1
fruit4
fruit5
就这么简单。
答案 5 :(得分:0)
电流(array_keys($ _ POST)) 应该给你你想要的东西。虽然没有测试过。
答案 6 :(得分:0)
很好的方式来查看已提交或将要提交的表单名称
<?php
$i=1;
foreach ($_POST as $name => $value) {
echo "</b><p>".$i." ".$name;
echo " = <b>".$value;
$i++;
}
?>
只需将表单发送到此脚本,它就会显示正在提交的内容。
答案 7 :(得分:-2)
您可以使用foreach循环来获取所有已设置的值。
foreach ($_POST AS $k=>$v){
echo "$k is $v";
}
你的例子
echo $_POST['email'].name; //output: email
没有意义,因为您已经知道要访问的值的名称?