Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/400.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
Javascript 从视图到控制器获取选中的复选框列表数据_Javascript_Php_Yii2 - Fatal编程技术网

Javascript 从视图到控制器获取选中的复选框列表数据

Javascript 从视图到控制器获取选中的复选框列表数据,javascript,php,yii2,Javascript,Php,Yii2,我通过循环迭代会话数组中的项,在视图中创建了一个列表。我甚至为每个迭代设置了复选框。我需要在控制器中以字符串或字符串数组的形式获取选中的值。我该怎么做呢。这是视图部分 <?php $session = Yii::$app->session; $array = explode('\r\n', $session['cdr_val']) ;

我通过循环迭代会话数组中的项,在视图中创建了一个列表。我甚至为每个迭代设置了复选框。我需要在控制器中以字符串或字符串数组的形式获取选中的值。我该怎么做呢。这是视图部分

 <?php
                $session = Yii::$app->session;
                $array = explode('\r\n', $session['cdr_val']) ;                                  
             ?>
                <div class="box-header with-border">
                    <h3 class="box-title">CDR Configurations</h3>
                    <?= Html::a('<span class="glyphicon pull-right glyphicon-transfer"></span>', ['#'], ['data-url' => Url::toRoute(['cdr/compare']), 'id' => 'btn-compare', 'title' => 'Compare']); ?>
                </div>

                <div class="box-body">
                    <!--form class="form-horizontal" name="form_blacklist_table" id=""-->
                    <div class="row">
                        <div class="box-body boxpad contSeperator">
                            <div class="col-md-12 col-sm-12 col-xs-12">
                                <table id="analyse-table" class="table table-bordered table-striped table-hover">
                                    <thead>
                                        <tr>
                                            <th class="actions-fix-wd-1 text-center">Select</th>
                                            <th>CDR</th>
                                            <th class="actions-fix-wd-2 text-center">Action</th>
                                        </tr>
                                    </thead>
                                    <tbody>
                                         <?php if ($array[0]!=''){ ?>
                                        <?php $j = 0 ?>
                                        <?php do{ ?>
                                        <tr>
                                            <td class="text-center">
                                           <!--?=
                                           //$form->field($model, 'status')->checkbox(['value' => "$j",'encode'=>false,'label'=>null]) ?-->

                                           <input name="checkbox1" id="checkbox1" type="checkbox" value="<?= $j ?>">
                                        </td>
                                            <td>
                                                <div>
                                                    <?php
                                                        echo($array["$j"]);
                                                        ?>
                                                </div>
                                            </td>

                                            <td class="text-center actions">
                                                <?= Html::a('<span class="glyphicon glyphicon-check"></span>', ['#'], ['data-url' => Url::toRoute(['cdr/analyze','id'=>$array["$j"]]), 'id' => 'btn-view', 'title' => 'analyze']); ?>
                                            </td>
                                            <?php $j++ ?>
                                        </tr>
                                        <?php }while($j<sizeof($array)); ?>
                                        <?php } ?> 
模型中定义并返回了变量

试试这个:

        ...
        <?php if (!empty($array[0])): ?>
        <?php foreach($array as $key => $value): ?>
            <tr>
                    <td class="text-center">
                    <!--?=
                    //$form->field($model, 'status[]')->checkbox(['value' => "$key",'encode'=>false,'label'=>null]) ?-->

                    <input name="checkbox1[]" id="checkbox1" type="checkbox" value="<?= $key ?>">
                </td>
                    <td>
                <div>
                        <?= $value ?>
                </div>
                    </td>

                <td class="text-center actions">
                    <?= Html::a('<span class="glyphicon glyphicon-check"></span>', ['#'], ['data-url' => Url::toRoute(['cdr/analyze','id'=> $value]), 'id' => 'btn-view', 'title' => 'analyze']); ?>
                </td>          
            </tr>
        <?php endforeach; ?>
    <?php endif; ?>
        ...
。。。
...

希望能有帮助

还是没用。我用于复选框的submit按钮位于循环外的顶部。加上js变量selecteditems得到了我想要的值。我不知道如何将它传输到控制器。post方法始终打印为null@SandeepaKariyawasam在您的控制器
return\Yii::$app->request->post(“项目”)
中发布此内容,并对其他内容进行注释。该值已打印为NULL。不管我单击了什么复选框。控制台显示所选的值。我是否可以将该值附加到url并从控制器获取它?@Sandeepa Kariyawasam请尝试以下
data:{items:selectedItems},
输出仍然为空。控制台日志正确显示检查的数据,因此问题不会出现。我很想知道是否有办法将js部件中的selectedItems变量传输到控制器。至少如何将其附加到urlIt是通过在请求中使用
get
方法完成的。它不会获取值。可能在调用弹出窗口时,变量中的数据会被idk清除。总是给空
public function actionCompare(){
$model = new CdrAllinone();
        $session = Yii::$app->session;
        $this->layout = 'popup';
        print_r(Yii::$app->request->getUrl());
print_r($_POST);
        ...
        <?php if (!empty($array[0])): ?>
        <?php foreach($array as $key => $value): ?>
            <tr>
                    <td class="text-center">
                    <!--?=
                    //$form->field($model, 'status[]')->checkbox(['value' => "$key",'encode'=>false,'label'=>null]) ?-->

                    <input name="checkbox1[]" id="checkbox1" type="checkbox" value="<?= $key ?>">
                </td>
                    <td>
                <div>
                        <?= $value ?>
                </div>
                    </td>

                <td class="text-center actions">
                    <?= Html::a('<span class="glyphicon glyphicon-check"></span>', ['#'], ['data-url' => Url::toRoute(['cdr/analyze','id'=> $value]), 'id' => 'btn-view', 'title' => 'analyze']); ?>
                </td>          
            </tr>
        <?php endforeach; ?>
    <?php endif; ?>
        ...