Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如果为只读且未选中,如何获取复选框值_Php_Html - Fatal编程技术网

Php 如果为只读且未选中,如何获取复选框值

Php 如果为只读且未选中,如何获取复选框值,php,html,Php,Html,我有几个复选框 foreach ($result as $set){ if ($set['Req']=='0') ?><input type="checkbox" name="select[]" value="1"> <?else?> <input type="checkbox" name="select[]" value="1" checked READONLY DISABLED>?> } 当前select[

我有几个复选框

foreach ($result as $set){ 
    if ($set['Req']=='0')
    ?><input type="checkbox" name="select[]" value="1"> 
    <?else?>
    <input type="checkbox" name="select[]" value="1" checked READONLY DISABLED>?>
}
当前select[]仅为{1},因为readonly/not checked不会发布该值 . 如何获取select[]即{1,1,0,1}?多谢各位

更新: 如果用户未选中该复选框,如何知道未选中哪个复选框并添加
select[]=0

我能想到的一种方法是,在这种情况下,我得到数组的总长度=4, 我现在可以拿到了

但问题是如何将其添加到正确的位置

currently i have select[] = {1,1,1} and $len=4;

您可以执行以下操作,而不是禁用复选框:

<input type="checkbox" name="select[]" value="0" style="display:none;">
在您的HTML表单中

foreach ($checkboxValues as $chkVals){ 
    if ($chkVals[1]=='required')
    ?>
            <input type="checkbox" name="select[]" value="<?=$chkVals[0];?>"> 
    <?else?>
            <input type="checkbox" name="select[]" value="<?=$chkVals[0];?>" checked READONLY DISABLED>
        ?>
}
foreach($checkboxValues作为$chkVals){
如果($chkVals[1]=='required')
?>

您可以执行以下操作,而不是禁用复选框:

<input type="checkbox" name="select[]" value="0" style="display:none;">
在您的HTML表单中

foreach ($checkboxValues as $chkVals){ 
    if ($chkVals[1]=='required')
    ?>
            <input type="checkbox" name="select[]" value="<?=$chkVals[0];?>"> 
    <?else?>
            <input type="checkbox" name="select[]" value="<?=$chkVals[0];?>" checked READONLY DISABLED>
        ?>
}
foreach($checkboxValues作为$chkVals){
如果($chkVals[1]=='required')
?>

您需要使用javascript将表单中的隐藏字段设置为所需的值,因为禁用字段不会在请求中发送。

您需要使用javascript将表单中的隐藏字段设置为所需的值,因为禁用字段不会在请求中发送。

为每个复选框指定一个显式索引可能更容易:

<input type="checkbox" name="select[1]" value="1" />
<input type="checkbox" name="select[2]" value="1" />
<input type="checkbox" name="select[3]" value="1" />
<input type="checkbox" name="select[4]" value="1" />


并使用
isset
检查提交表单中设置了哪些索引。未选中/禁用的复选框将不会出现在提交表单中。

为每个复选框指定一个明确的索引可能更容易:

<input type="checkbox" name="select[1]" value="1" />
<input type="checkbox" name="select[2]" value="1" />
<input type="checkbox" name="select[3]" value="1" />
<input type="checkbox" name="select[4]" value="1" />

并使用
isset
检查提交表单中设置了哪些索引。未选中/禁用的复选框将不会出现在提交表单中。

尝试以下操作:

<form name="myform" action="" method="post">

    <input type="hidden" name="select[1]" value="">
    <input type="checkbox" name="select[1]" value="1" checked readonly> 

    <input type="hidden" name="select[2]" value="">
    <input type="checkbox" name="select[2]" value="1"> 

    <input type="hidden" name="select[3]" value="">
    <input type="checkbox" name="select[3]" value="1" checked readonly>

    <input type="hidden" name="select[4]" value="">
    <input type="checkbox" name="select[4]" value="1">
</form>

试试这个:

<form name="myform" action="" method="post">

    <input type="hidden" name="select[1]" value="">
    <input type="checkbox" name="select[1]" value="1" checked readonly> 

    <input type="hidden" name="select[2]" value="">
    <input type="checkbox" name="select[2]" value="1"> 

    <input type="hidden" name="select[3]" value="">
    <input type="checkbox" name="select[3]" value="1" checked readonly>

    <input type="hidden" name="select[4]" value="">
    <input type="checkbox" name="select[4]" value="1">
</form>


这样,用户不知道选择了什么。它可以,我可以显示消息抱歉,但这仍然不能发布值,如果复选框未选中,简单地说,我想要的是:在复选框未选中时发布选择[]=0谢谢!因为选择[]如果未选中,则不会发布,我如何知道是否选中?这样,用户不知道选择了什么。可以,我可以显示消息抱歉,但这仍然无法发布值,如果未选中复选框,简单地说,我想要的是:post select[]当复选框未选中时=0谢谢!因为如果未选中select[]将不会发布,我如何知道它是否选中?是的,但它会混淆值。例如,我为复选框1添加隐藏框1,两个名称都=select[],发布结果将是Double Yeah,但它会混淆值。例如,我为复选框1添加隐藏框1,名称=选择[],发布结果将是Double Yeah,更简单的是,如果该项不存在,我如何添加“0”?假设总长度=4且[1]=>“1”和[3]=>“1”,这意味着我需要添加[2]=>“0”和[4]=>'0',但如何添加?谢谢。是的,如果项目不存在,我如何添加“0”更简单?假设总长度为4,[1]=>'1',[3]=>'1',这意味着我需要添加[2]=>'0'和[4]=>'0',但如何添加?谢谢