PHP:如何检索具有相同名称的多个表单输入的值,?

PHP:如何检索具有相同名称的多个表单输入的值,?,php,html,checkbox,Php,Html,Checkbox,我有一个复选框,在每个复选框旁边我有一个选择选项。我有多个这样的选项,我只想在选中复选框的情况下检索select的值 代码如下: <form method="POST"> <fieldset> <input type="checkbox" name="check1[]"> <select name="select1[]"> <option value="1">One</option>

我有一个复选框,在每个复选框旁边我有一个选择选项。我有多个这样的选项,我只想在选中复选框的情况下检索select的值

代码如下:

<form method="POST">
<fieldset>
    <input type="checkbox" name="check1[]">
    <select name="select1[]">
        <option value="1">One</option>
        <option value="2">Two</option>
        <option value="3">Three</option>
    </select

我们只在服务器上选中了复选框,在那个里,您的for循环为false

在这段代码中,我为每个复选框添加了值来标识选择框

如果check1[0]==0,那么我们得到select1[0]

if check1[1] == 1 then we get select1[1]
对不起我的英语

Html代码

<form action='' method="post">
    <fieldset>
        <input type="checkbox" name="check1[]" value='0'>
        <select name="select1[]">
            <option value="1">One</option>
            <option value="2">Two</option>
            <option value="3">Three</option>
        </select>
    </fieldset>
    <fieldset>
        <input type="checkbox" name="check1[]" value='1'>
        <select name="select1[]">
            <option value="4">One</option>
            <option value="5">Two</option>
            <option value="6">Three</option>
        </select>
    </fieldset>
    <input type="submit" name="update" value="go">
</form>

一个
两个
三
一个
两个
三
PHP代码:

if(isset($_POST['update'])){
    for($i = 0; $i < sizeof($_POST['check1']); $i++){
        if(isset($_POST['check1'][$i])){
            echo $_POST['select1'][$i];
        }
    }
}
if(isset($_POST['check1'])){
    for($i=0;$i<count($_POST['check1']);$i++){
        if($_POST['check1'][$i] >= 0){
            echo $_POST['select1'][$_POST['check1'][$i]];
        }
    }
}
if(设置($\u POST['check1'])){
对于($i=0;$i=0){
echo$\u POST['select1'][$\u POST['check1'][$i]];
}
}
}

否则我会这么做。选中复选框后,在javascript中,我将激活select输入,并最终在一个隐藏字段中检索结果。您还可以仅在选中的输入被激活时将其值更改为1,并将其链接到隐藏的输入字段。

<input type="checkbox" name="check1[]">
<input type="hidden" name="hiddenValue[]" value="0">
    <select name="select1[]">
        <option value="1">One</option>
        <option value="2">Two</option>
        <option value="3">Three</option>
    </select

一个
两个
三

您没有使用唯一名称有什么原因吗?@enhzflep我有一个未知的名称编号。在您的php代码中,尝试放置这行,然后您将看到您在php页面上看到的内容。。。回声';打印请求($);回声'@Zeeshan无法理解你的代码,你能说得更清楚一点吗?请在你的PHP代码文件中添加以下行:@user3898380:echo“”;打印请求($);回声';谢谢,你认为从头到尾迭代check1数组可以解决这个问题吗?不确定,但你必须明白如果第一个check1[]没有被选中,那么你的数组就不会像你想的那样被排序。这就是为什么基于您的方法,我会添加一个隐藏字段,而我的循环会使用隐藏字段。所以我会添加一点javascript。或者切换到单选按钮。
if(isset($_POST['check1'])){
    for($i=0;$i<count($_POST['check1']);$i++){
        if($_POST['check1'][$i] >= 0){
            echo $_POST['select1'][$_POST['check1'][$i]];
        }
    }
}
<input type="checkbox" name="check1[]">
<input type="hidden" name="hiddenValue[]" value="0">
    <select name="select1[]">
        <option value="1">One</option>
        <option value="2">Two</option>
        <option value="3">Three</option>
    </select
<input type="checkbox" name="check1[0]">
<input type="checkbox" name="check1[1]">
<select name="select1[]">
        <option value="0">Choose an option</option>
        <option value="4">One</option>
        <option value="5">Two</option>
        <option value="6">Three</option>
</select>