У меня есть страница просмотра ( index.php
) в моем проекте Yii2, и я использую gridView Kartik для отображения данных
В правой части окна есть столбец флажка. И у меня есть кнопка « Экспорт» . Я хочу экспортировать выбранное имя (выбранное по name.txt
) в файл name.txt
.
Я, наконец, сделал функцию экспорта, но я не знаю, как получить выбранные данные из представления в контроллер.
Я пробовал предложения, которые я получил на многих форумах, например:
Я поставил этот код javascript в свой индекс index.php
:
<script> function getRows(){ var keys = $('#grid').yiiGridView('getSelectedRows'); $.post({ url: FakturOutController / exportAction, dataType: 'json', data: {keylist: keys}, success: function(data) { alert('I did it! Processed checked rows.') }, }); }
и установите кнопку экспорта следующим образом:
<p> <button type="button" onclick="getRows()" class="btn btn-success">Export</button> </p>
Но я ничего не получил, кнопка не показывала никаких действий / реакции при нажатии.
`<?php Pjax::begin(); ?> <?= GridView::widget([ 'dataProvider' => $dataProvider, 'tableOptions' => ['class' => 'table table-hover'], 'columns' => [ ['class' => 'yii\grid\SerialColumn', 'header' => 'No', ], [ 'label' => 'Name', 'value' => function($data) { return $data->name; } ], ['class' => '\kartik\grid\CheckboxColumn'], ], 'toolbar' => [ ['content' => Html::a('<i class="glyphicon glyphicon-repeat"></i>', ['index'], ['data-pjax' => false, 'class' => 'btn btn-default', 'title' => 'Reset Grid']) ], '{export}', '{toggleData}' ], 'panel' => [ 'heading' => '<i class="glyphicon glyphicon-align-left"></i> <b>Data</b>', 'before' => '', //IMPORTANT ], ]); ?> <?php Pjax::end(); ?> <?= Html::a('<i class=" glyphicon glyphicon-export"></i> Export', ['export', 'userId' => $userId], ['class' => 'btn btn-success']); ?>`
Любая помощь будет оценена по достоинству. благодаря
При проверке элемента на столбце флажка вы можете найти имя строки ( имя флажка ). он содержит id как значение .
из которого вы можете найти, сколько строк выбрано.
в моем случае я получаю ' selection []' в имени флажка.
ех.
<input type="checkbox" class="kv-row-checkbox" name="selection[]" value="1">
Я пишу код jquery, чтобы получить выбранные строки ниже.
<script> function getRows() { var strvalue = ""; $('input[name="selection[]"]:checked').each(function() { if(strvalue!="") strvalue = strvalue + ","+this.value; else strvalue = this.value; }); // strvalue contain selected row by comma separated $.post({ url: FakturOutController / exportAction, dataType: 'json', data: {keylist: keys}, success: function(data) { alert('I did it! Processed checked rows.') }, }); } </script>