Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/253.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_Ajax_Post_Checkbox_Yii - Fatal编程技术网

Php 为什么元素在未选中的情况下仍被发布?

Php 为什么元素在未选中的情况下仍被发布?,php,ajax,post,checkbox,yii,Php,Ajax,Post,Checkbox,Yii,我正在使用Yii,我想提交一个表单到一个操作。在操作中,我得到一个复选框,即使我没有选中它,但它的值始终为1,下面是我的代码: <?php echo CHtml::beginForm(Yii::app()->createUrl('jobs/index2'), 'POST'); ?> <div class="row"> <div class="col-sm-4 col-lg-3 blog-sidebar" >

我正在使用Yii,我想提交一个表单到一个操作。在操作中,我得到一个复选框,即使我没有选中它,但它的值始终为1,下面是我的代码:

    <?php echo CHtml::beginForm(Yii::app()->createUrl('jobs/index2'), 'POST'); ?>
        <div class="row">

          <div class="col-sm-4 col-lg-3 blog-sidebar" >

              <div class="sidebar-module">

                <h4 style="color:#D11F45">Refine your search</h4>

        <h4>Division</h4>
        <div id="Division">
            <?php 
            $i = 0;
            foreach ($model2 as $m2){
            if($m2['category']==('Division')){
                echo '<div class="checkbox"><label>'.
                        CHtml::checkBox("c".$i, false).$m2->tag

            .'</label></div>';
                $i++;
            }

                        }
                ?>
            </div>

            <hr>

             <h4>Location</h4>
             <div id="Location">
                <?php 

                foreach ($model2 as $m2){

                    if($m2['category']=='Location'){
                    echo '<div class="checkbox"><label>'.
                            CHtml::checkBox("c".$i, false, array('value'=>'hhhhhhhhhhh', 'uncheckValue'=>'N')).$m2->tag

                        .'</label></div>';
                    $i++;}
                }
                ?>
             </div>

            <hr>


            <?php

            echo CHtml::ajaxSubmitButton(

                        'Search',
                        array('jobs/index2'),
                        array(
                            'update'=>'#jobslist',
                        )
                    );


            ?>
                      </div>
                  </div><!-- /.blog-sidebar -->

<?php  echo CHtml::endForm(); ?>
        <div class="col-sm-8 col-lg-9 blog-main" id="jobslist">

          <?php echo $this->renderPartial('_index', array('model'=>$model)); ?>  
        </div>
      </div>    
    </div>
    </div>
<script src="<?php echo Yii::app()->request->baseUrl; ?>/js/j.js"></script>

优化搜索
分部

您的代码包含
隐藏的
元素,但不清楚您为什么认为需要它们:

<input type="hidden" value="N" name="HR training">
<input value="hhhhhhhhhhh" type="checkbox" name="HR training" id="HR_training">
将为您提供以下结果:

  • 如果选中“永久”,数据将包含
    status=Permanent
  • 如果选中“临时”,数据将包含
    status=Temporary
  • 如果两者都未选中,则数据将根本不包含
    状态

同时,这个带有浏览器源代码的演示显示您描述的问题没有发生。未选中的复选框都不是序列化数组的一部分


在浏览器源代码中显示此代码的呈现方式如何?@Sparky在浏览器源代码中,复选框值分配正确。请显示呈现的代码。如果它正在做你声称的事情,浏览器中的代码将直接负责。。。不是服务器上的原始代码。@Sparky ok,请参阅编辑说明:我为所有复选框添加了
false,数组('value'=>'hhhhhhh','uncheckValue'=>'N')
从数组中删除
uncheckValue
可以删除隐藏的元素,但为什么从您显示的代码中,过帐值总是1???@user2101939,这是不可能的:~请显示足够的代码来重现问题。多大的失败???我没有注意到我将
isset($\u POST[''])
赋值给变量而不是
$\u POST[''']
,因此1来自
isset()
函数的布尔返回
<input type="hidden" value="N" name="HR training">
<input value="hhhhhhhhhhh" type="checkbox" name="HR training" id="HR_training">
<input type="radio" name="status" value="permanent" />: Permanent
<input type="radio" name="status" value="temporary" />: Temporary