我有一个包含产品信息的表单和一个具有两(2)个状态复选框的字段(想要为该特定产品发布广告。)我有一个字段用于“添加更多”它将克隆整个div
并复选框,以便我有多个输出,但我没有得到单个值。
<div>
<label>I want to Advertise This Item</label>
<input type="checkbox" value="1" name="chkyes[]" id="chkyes[]"/>
Yes
<input type="checkbox" value="0" name="chkyes[]" id="chkyes[]"/>
No
</div>
上面的代码用于选择复选框,下面的代码在数组中回显值,但我没有得到复选框的值。
if(count($_POST)){
$len = count($_POST['producttitle']);
for ($i=1; $i < $len; $i++){
echo $_POST['chkyes'][$i];
}
}
答案 0 :(得分:2)
为什么你不使用foreach?
例如
if (isset($_POST['chkyes'])) {
foreach ($_POST['chkyes'] as $value) {
echo $value;
}
}
答案 1 :(得分:2)
第一种方法:
<input type='checkbox' name='chkyes[1]'>
<input type='checkbox' name='chkyes[2]'>
<input type='checkbox' name='chkyes[3]'>
通过这种方式,您可以使用
在PHP中访问它们foreach ($_POST['chkyes'] as $id=>$checked){
if ($checked =='on')
//process your id
}
第二种方法:在复选框上设置值的属性:
<input type='checkbox' name='chkyes[]' value='1'>
<input type='checkbox' name='chkyes[]' value='2'>
<input type='checkbox' name='chkyes[]' value='3'>
使用此功能,您只会收到选中的值:
foreach ($_POST['chkyes'] as $id){
//process your id
}
答案 2 :(得分:1)
输入数组从索引0开始,并使用$_POST['chkyes']
代替$_POST['producttitle']
if(count($_POST)){
$len = count($_POST['chkyes']);
for ($i=0; $i < $len; $i++){
echo $_POST['chkyes'][$i];
}
}
你也不能像chkyes那样给予id []把它当作chkyes1,chkyes2
答案 3 :(得分:1)
尝试以下代码
<?php
if($_POST['submit'] == 'submit'){
$len = count($_POST['chkyes']);
for ($i=0; $i < $len; $i++){
echo $_POST['chkyes'][$i];
}
}
?>
<form name="test" method="POST">
<div>
<label>I want to Advertise This Item</label>
<input type="checkbox" value="1" name="chkyes[]" id="chkyes[]"/>
Yes
<input type="checkbox" value="0" name="chkyes[]" id="chkyes[]"/>
No
</div>
<input type="submit" name="submit" value="submit">
</form>
答案 4 :(得分:1)
仅在表单中提交已选中的复选框。它们将被收集在数组$_POST['chkyes']
中,但索引将与相应的文本输入不同。您需要使用自己的foreach
循环处理它们,而不是与其他输入相同的循环。
您正在做什么,为什么不使用单选按钮或单个复选框?如果用户同时检查是和否,该怎么办?