【问题标题】:Retrieve php variable via html name form通过 html 名称表单检索 php 变量
【发布时间】:2012-07-11 13:42:19
【问题描述】:

我只需要知道它的 html 输入名称来检索 php 变量。

如:我知道输入的名字是 admin[username] 所以我想获取变量 $_POST['admin']['username]

我需要这个来对输入进行某种验证。换句话说,我在显示表单时保存了 html 输入名称,但只在下一个服务器请求时测试它,所以我并不总是知道 php 变量名称是什么,因为它可以通过 javascript 或我如果 html 输入名称是 admin[]

,则可以有数组

谢谢

【问题讨论】:

  • 您在寻找$_POST['admin'][] 数组元素?
  • 你的html如下? <input type=text name="admin[username]" />?
  • @DainisAbols 如果我传递字符串“admin[]”,我将寻找 $_POST['admin'][] 是的,但它可以是简单的“admin”、“admin[username] "、"admin[username][]" 或 "admin[username][][test]" 当然,这只是示例,名称并没有真正的意义
  • 这很令人困惑,您能否停止告诉我们您认为应该如何处理我们仍然不理解的问题。但要清楚说明你想做什么以及你目前有什么代码。
  • 不,@DainisAbols 要求您向您展示到目前为止您已构建的内容,这与我的要求完全相同。并且一些潜在的澄清不会伤害不。我目前的理解是您在数组中发布带有动态键名的表单值。这可能是一个关联数组(admin[username][test]),但是当这个数组没有键(admin[username][])时,你似乎会遇到一些困难。类似的东西。

标签: php html variables


【解决方案1】:
$postdata = get_associative_array_from_post_data($post['admin']);

function get_associative_array_from_post_data($array){
    if(isAssoc($array)){
        /*foreach($array as $key=>$value){
            $your_key = $key;
            $your_value = $value;
        }*/
        return $array;
    }
    else{ //if the post array has no keys, search for arrays within this 
        $key_collection=array();
        foreach($array as $sub_array){

            foreach($sub_array as $key=>$value){
                $key_collection[$key][] = $value;
            }
        }
        return $key_collection;
    }

}    



function isAssoc($arr)
{
    return array_keys($arr) !== range(0, count($arr) - 1);
}

如果你发帖:

admin[username] = 'test' 和 admin[email] = 'test@example.com'

你会得到

$postdata = array('username'=>'test', 'email'=>'test@example.com');

如果您发布: admin[][username] = 'test' 和 admin[][username] = 'test2' admin[][email] = 'test@example.com' 和 admin[][email] = 'test2@example.com'

你会得到:

$postdata = array(
                      'username'=>array('test', 'test2'),
                      'email'=>array('test@example.com', 'test2@example.com')
                 );

【讨论】:

  • 我喜欢你的想法来验证这是否是一个关联数组,这肯定会帮助我谢谢
猜你喜欢
  • 2018-10-04
  • 2013-08-28
  • 1970-01-01
  • 1970-01-01
  • 2015-11-05
  • 1970-01-01
  • 1970-01-01
  • 2011-02-12
  • 1970-01-01
相关资源
最近更新 更多