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; ?>
...