0

グリッドビューから選択したキーを含む配列を (ポストで) 渡すようにしていますが、常に同じ URL のエラーが発生しています:

POST http://localhost/cngrx/web/index.php/ponenciaresumen/[object%20Object] 404 (Not Found) 

コードは常にこのパターンを生成するようです: path/myController/[object%20Object] 私が設定した URL は問題ではなく、コードは常に同じ URL を生成し、それは私が必要とするものではありません。私のコードはこれです:

<script>
  $(document).ready(function(){
    $('#MyButton').click(function(){

       var keys = $('#w1').yiiGridView('getSelectedRows');
        $.post({
           url: 'myController/myAction', 
           dataType: 'json',
           data: {keylist: keys}

        });
    });
  });
</script>

私は絶対URLと親戚のものを試しましたが、そうではありません。それはどのようにできますか??

これは myController での私のアクションです:

 public function actionMyAction(    ) {
    if (isset($_POST['keylist'])) {
        $keys = \yii\helpers\Json::decode($_POST['keylist']);

        // you will have the array of pk ids to process in $keys
        // perform batch action on these keys and return status
        // back to ajax call above
    }
}

前もってありがとう!

4

4 に答える 4

0

http://www.yiiframework.com/doc-2.0/yii-grid-checkboxcolumn.htmlを参照してください。

必要Class yii\grid\CheckboxColumn

var keys = $('#grid').yiiGridView('getSelectedRows');

于 2015-02-26T19:11:58.453 に答える
0

グリッドをpjaxコンテナに入れると、これが起こると思いますか?

Pjax を使用していない場合は、#grid の代わりに要素 ID #w1 を使用する必要があります。

Yii2 はこのスクリプトをレンダリングします

    jQuery(ドキュメント).ready(関数() {
    jQuery('#modal-upload').modal({"show":false});
    jQuery('#w0').yiiGridView({"filterUrl":"/advanced/backend/web/index.php?r=state%2Findex","filterSelector":"#w0-filters 入力、#w0-filters 選択"});
    jQuery('#w1').yiiGridView({"filterUrl":"/advanced/backend/web/index.php?r=state%2Findex","filterSelector":"#w1-filters 入力、#w1-filters 選択"});
    jQuery('#w1').yiiGridView('setSelectionColumn', {"name":"selection[]","multiple":true,"checkAll":"selection_all"});
    jQuery('#w2').yiiGridView({"filterUrl":"/advanced/backend/web/index.php?r=state%2Findex","filterSelector":"#w2-filters 入力、#w2-filters 選択"});
    });

GridView で Pjax を使用したときに値またはキーを取得できませんでしたが、#grid の代わりに要素 ID #w2 を使用したときにキーを取得しました。

これをビューで使用できます



    $script = '
    jQuery(document).ready(function() {
      btnCheck  = $("#btn-check");
      btnCheck.click(function() {
        var keys = $("#w2").yiiGridView("getSelectedRows");
        alert(keys);
        $.ajax({
            type: "POST",
            url: "'.\yii\helpers\Url::to(['/controller/action']).'", 
            dataType: "json",
            data: {keylist: keys}
        });
      });
    });';
    $this->registerJs($script, \yii\web\View::POS_END);

于 2015-04-03T11:10:59.907 に答える
0

コードのソースを表示し、チェックボックスのIDが「w1」または「w0」かどうかを確認します..デフォルトでは「w0」であり、問​​題を修正できました:

var keys = $('#w0').yiiGridView('getSelectedRows');
于 2016-07-19T14:23:26.647 に答える