나는이 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();
}
버튼을 클릭하면 빈보기가 나타납니다. 이 튜토리얼을 따랐습니다 . 문제가 무엇인지 모르겠습니다. 나는 그것에 붙어 있습니다.
업데이트 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')
}
});
결과는
어떤 도움이라도 대단히 감사하겠습니다.
컨트롤러를 변경하고 빈 출력을 얻은 이유가 무엇인지, 아마도 csrf 토큰이 누락되었는지 확인하십시오.
public function actionViewsetpdf()
{
if(isset($_POST['keylist']))
{
$keys = json_decode($_POST['keylist']);
print_r($keys);
}
else{
echo 'no data';
}
exit();
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다