【发布时间】:2017-11-11 06:02:28
【问题描述】:
我有一个GirdView,其中包括checkbox。现在我有一个按钮,我将其路由到另一个action controller。下面是我的代码
<?= GridView::widget([
'dataProvider' => $dataProvider,
/*'filterModel' => $searchModel,*/
'id'=>'grid',
'columns' => [
['class' => 'yii\grid\CheckboxColumn'],
'Meter Serial Number',
'Issued To',
'Store',
],
]); ?>
<a href="<?= URL::toRoute(['ogpheader/viewsetpdf','id'=>'myid'])?>" type="submit" class="btn btn-primary" name="issue_pdf" id="myid" onclick="getRows()">Set PDF</a>
$(document).ready(function () {
$('#myid').click(function() {
var keys = $('#grid').yiiGridView('getSelectedRows');
// alert(keys);
$.post({
url: 'ogpheader/viewsetpdf',
dataType: 'json',
data:{keylist: keys},
success:function(data) {
alert('Done')
}
});
}) });
然后在我的控制器中
public function actionViewsetpdf()
{
/*$model = $this->findModel($id);
print_r($model);*/
if(isset($_POST['keylist']))
{
$keys = json_decode($_POST['keylist']);
print_r($keys);
}
exit();
}
当我单击按钮时,我得到空视图。我关注了this tutorial我不知道是什么问题。我坚持下去。
更新1
在网络中检查时
更新 2
按照建议,我已尝试使用 $.ajax,结果如下
更新 3
改成JS后
$('#myid').click(function(e) {
e.preventDefault();
var keys = $('#grid').yiiGridView('getSelectedRows');
// alert(keys);
$.ajax({
url: '<?= URL::toRoute(["ogpheader/viewsetpdf"])?>',
dataType: 'json',
data:{keylist: keys},
type: 'post',
success:function(data) {
alert('Done')
}
});
结果是
任何帮助将不胜感激。
【问题讨论】:
-
你在网络中调试过吗?试试 $.ajax
-
@PrasannaVenkatesh 请查看更新
-
你的 $.post 应该改为 $.ajax
-
你能把
url: '<?= URL::toRoute(["ogpheader/viewsetpdf"])?>',改成url: '<?= \yii\helpers\Url::to(["/ogpheader/viewsetpdf"])?>',并在第一行viewtestpdf添加echo "hello"; exit;,然后检查控制台,你添加的控制台图像包含整个php参数中的声明不应该是,你也应该使用$this->registerJs()和yii\web\View::POS_END。 -
我已根据您的建议更改了代码,并添加了
$this->registerJs()现在我有一个异常ArgumentCountError详细信息是oo few arguments to function yii\web\View::registerJs(), 0 passed
标签: php jquery ajax gridview yii2