PHP:如何检索具有相同名称的多个表单输入的值,?
我有一个复选框,在每个复选框旁边我有一个选择选项。我有多个这样的选项,我只想在选中复选框的情况下检索select的值 代码如下: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>
<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>