2017-05-26 13:51:18 3387次浏览 5条回答 0 悬赏 30 金钱
这里输入代码

use common\grid\EnumColumn;
use common\models\ArticleCategory;
use common\models\Category;
use yii\helpers\ArrayHelper;
use yii\helpers\Html;
use yii\grid\GridView;

/ @var $this yii\web\View /
/ @var $searchModel backend\models\search\ArticleSearch /
/ @var $dataProvider yii\data\ActiveDataProvider /

$this->title = Yii::t('backend', 'Articles');
$this->params['breadcrumbs'][] = $this->title;

?>

<?php // echo $this->render('_search', ['model' => $searchModel]); ?>

<?= Html::a( Yii::t('backend', 'Create {modelClass}', ['modelClass' => '文章']), ['create'], ['class' => 'btn btn-success']) ?> <?= Html::a('批量删除', "javascript:void(0);", ['class' => 'btn btn-success gridview']) //这里获取不到id ?>

<?= GridView::widget([ 'dataProvider' => $dataProvider, 'filterModel' => $searchModel, 'showFooter' => true, 'options' => [ 'class' => 'grid-view table-responsive', "id" => "grid", ], 'columns' => [ [ 'class'=>'yii\grid\CheckboxColumn', 'name'=>'id[]', ], 'title', [ 'class' => 'yii\grid\ActionColumn', 'template' => '{update} {delete}' ] ], ]); $this->registerJs(' //全选 $(function(){ $(\'.select-on-check-all\').click(function(){ if($(".select-on-check-all").prop("checked")) { $("input[name=\'id[]\']").prop(\'checked\',true); } else { $("input[name=\'id[]\']").prop("checked",false); } }); }); //批量删除 $(".gridview").on("click", function () { alert(11); //这里获取不到id var keys = $("#grid").yiiGridView("getSelectedRows"); alert(keys); console.log(keys); }); '); ?> ```

这里输入代码


补充于 2017-05-26 14:00

获取不到id

  • 回答于 2017-05-26 16:07 举报

    先修改下你发帖的内容吧,代码格式化下。

    1 条回复
    回复于 2017-05-26 17:08 回复

    整理好了,帮忙看看啊

  • 回答于 2017-05-26 16:53 举报

    鼠标右键 点击查看页面源代码 你看下js加载的位置 有可能是顺序不对 js没获取到值

    1 条回复
    回复于 2017-05-26 17:02 回复

    网站源码这样的`

    jQuery(document).ready(function () {">jQuery('#grid').yiiGridView('setSelectionColumn', {"name":"id[]","class":null,"multiple":true,"checkAll":"id_all"});
    jQuery('#grid').yiiGridView({"filterUrl":"\/article\/index","filterSelector":"#grid-filters input, #grid-filters select"});
    
            //全选
            $(function(){
                $('.select-on-check-all').click(function(){
                    if($(".select-on-check-all").prop("checked")) {
                        $("input[name='id[]']").prop('checked',true);
                    } else {
                       $("input[name='id[]']").prop("checked",false);
                    }
                 });
            });
            //批量删除
            $(".gridview").on("click", function () {
                alert($("#grid:checked").length);
                var keys = $("#grid").yiiGridView("getSelectedRows");
                alert(keys);
                console.log(keys);
            });
        
    });</script>
    
  • 回答于 2017-05-26 17:29 举报

    在要删除的元素那里加个data-id,然后用ajax发送就行了

  • 回答于 2017-05-28 21:11 举报

    js的做法是,通过js实现全选,然后给每个带id的dom元素增加class属性,立刻 class="eeItem", 然后选择这些 eeItem 判断是否选中状态,拿到所有选中状态的id,组成json,然后ajax

    拿到id以后应该你就会了,这不属于Yii,属于js基本功了,我记得多年前写过差不多的东西,但是没有写文章,在这里分享下思路。

    debug方式直接js console.log就行了,与传统网页开发无异

    如果想简单点,可以直接导入vuejs 框架来实现,有点杀鸡用牛刀的感觉了,

  • 回答于 2017-05-31 15:01 举报

    批量删除应该是用class去找把,ID一个页面只能有一个哦

您需要登录后才可以回答。登录 | 立即注册
zztting
经理

zztting 内蒙古

注册时间:2016-12-16
最后登录:2019-03-09
在线时长:16小时4分
  • 粉丝4
  • 金钱1515
  • 威望0
  • 积分1675

热门问题