从2个具有相同名称的输入中获取post值


Getting post value from 2 input with the same name

首先,我不能更改输入的名称。我试着用这样的数组命名输入:

<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使用一个类或ID或其他东西,并使用数组表示法设置输入名称。我首先会担心你的表单是如何运作的。让它正确工作,然后担心CSS,而不是相反。

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

快速的死亡方式,只是为了表明这是可能的。

$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;
    }
}

这需要像url解码一样进行一些润色。当然,它也有局限性:当使用enctype multipart(用于上传文件)发送表单时,php://input不可用。此外,这并不关心数组,所以如果您有一些名称为info[]的表单元素,它将无法正确解析。它也可以纠正,但就我个人而言,我会更改我的HTML/CSS