【问题标题】:Getting post value from 2 input with the same name从具有相同名称的 2 个输入中获取帖子值
【发布时间】:2013-07-04 04:35:45
【问题描述】:

首先,我无法更改输入的名称。 我试过用这样的数组命名输入:

<select name="info[]" class="select-block" id="2">

但是 css 不起作用。

那么,我怎样才能从 2 个与 php 同名的输入中获取帖子

<select name="info" class="select-block" id="2">

<select name="info" class="select-block" id="1">

【问题讨论】:

  • css 不使用名称值,所以我很困惑。第一个选项应该没问题,确定不是别的
  • 唯一的办法就是直接读取解析php://input
  • @Dagon 我猜他有像 select[name=info] 这样的 CSS
  • 公平的电话,我的 css 知识是“基本的”,所以只需切换到 .select-block{}

标签: php html


【解决方案1】:

只需为 CSS 使用类或 ID 或其他内容,并使用数组表示法设置输入名称。我会担心您的表单首先如何运作。让它正常工作,然后担心 CSS,而不是反过来。

【讨论】:

  • +1。只是想在这里插话,ID应该是唯一的。由于他已经拥有class="select-block" 属性/值,他可以只使用.select-block 选择器。
【解决方案2】:

在 CSS 中,如果您有 select[name=info],则将其替换为 .select-block 并使用 info[] 作为名称

【讨论】:

    【解决方案3】:

    Quick'n'dirty 方式,只是为了表明它是可能的。

    $qs = file_get_contents('php://input');
    
    $_POST = array();
    
    foreach(explode('&', $qs) as $varval){
        list($var, $val) = explode('=', $varval, 2);
        if (isset($_POST[$var])) {
            if (!is_array($_POST[$var])) {
                $_POST[$var] = array($_POST[$var]);
            }
            $_POST[$var][] = $val;
        } else {
            $_POST[$var] = $val;
        }
    }
    

    这需要像 urldecoding 之类的抛光。当然它也有限制:当使用 enctype multipart(用于上传文件)发送表单时,php://input 不可用。这也不关心数组,所以如果你有一些名称像info[] 的表单元素,它就不会被正确解析。它也可以更正,但我个人会更改我的 HTML/CSS

    【讨论】:

      猜你喜欢
      • 2012-12-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-14
      • 1970-01-01
      • 2014-12-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多