Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Добрый день.
Пытаюсь прикрутить jqgrid на laravel. Налетел на VerifyCsrfToken. Не могу решить.
Система такая грузится страничка с табличкой, на которой есть две ссылки по одной загружается сам контент
if( $('#jqgrid').length > 0 ) {
grid.jqGrid({
url: '/setting/lists.loaddata',
mtype: "post",
"postData":{
"_token":"{!!csrf_token()!!}"
},
"editData":{
"_token":"{!!csrf_token()!!}"
},
datatype: "json",
colNames: [' ', 'ID', 'Название', 'Табличка', '],
colModel: [
{name:'myac', width:80, fixed: true, sortable:false,resize:false, search: false,formatter:'actions',formatoptions:{editbutton:true,delbutton:true}},
{name: 'DBID', index: 'DBID', width: 20, align: "left", editable: false, editrules: {required: false}, sortable: false, search: false},
],
rowNum: '{!!$row_numbers!!}',
width: "100%",
height: "100%",
rowList: {!!Config::get('gconfig.default_rowList')!!},
pager: '#jqgrid-pager',
editurl: "/setting/lists.edit",
//editData: "_token:'{!!csrf_token()!!}'",
sortname: '{!!$sortname!!}',
multiselect: false,
viewrecords: true,
rownumbers: false,
gridview: true,
caption: "{{$table_title}}",
ondblClickRow: function(id) {
if (id && id != lastSel) {
jQuery("#list").restoreRow(lastSel);
jQuery("#list").editRow(id, true);
lastSel = id;
}
},
})
ссылка url: '/setting/lists.loaddata', отрабатывает, а вот вторая editurl: "/setting/lists.edit", не отрабатывает.
Хотя в запросе токен есть http://joxi.ru/Vm6vZ3OFdj6MmZ. Если в middleware комментировать строчку 'App\Http\Middleware\VerifyCsrfToken', то все работает.
Проблема я так понимаю в том что страничка не обновляется после каждого действия, и токен меняется. Вот как решить "по фкеншую" не знаю. Прошу помочь.
Не в сети
а у тебя в роуте что пришли и в контроллере
Не в сети
а у тебя в роуте что пришли и в контроллере
Route::group(['prefix' => '/setting', 'middleware' => 'sentry.admin'], function () {
Route::get('lists', ['as' => 'lists.idex', 'uses' => 'ListsSetingsController@index']);
Route::match(['get', 'post'], 'lists.loaddata', ['as' => 'lists.loaddata', 'uses' => 'ListsSetingsController@loaddata']);
Route::post('lists.edit', ['as' => 'lists.edit', 'uses' => 'ListsSetingsController@edit']);
});
public function loaddata() {
$idkey = $this->idkey;
$table = $this->table;
$join = $this->join;
$where_=NULL;
$default_row_grud = Config::get('gconfig.default_row_grud');
$default_type_sort = Config::get('gconfig.default_type_sort');
$options = array();
$options['limit'] = \Request::input('rows', $default_row_grud);
$options['table_sort'] = \Request::input('sidx', $idkey);
$options['type_sort'] = \Request::input('sord', 'asc');
//$count = $this->grud->getSimpleCount($table, $where_);
$count = $this->grud->getFullCount($table, $where_);
$total_pages = ($count > 0) ? ceil($count / $options['limit']) : 0;
$page = \Request::input('page', 1);
$options['start'] = max($options['limit'] * $page - $options['limit'], 0);
//$query = $this->grud->getSimpleDesignation($table, $options, $where_, $join);
$query = $this->grud->getFullDesignation($table, $options, $where_, $join);
// dd($query);
$responce['page'] = ($page > $total_pages) ? $total_pages : $page;
$responce['total'] = $total_pages;
$responce['records'] = $count;
$i = 0;
foreach ($query as $row) {
$responce['rows'][$i]['id'] = $row->{$idkey};
$responce['rows'][$i]['cell'] = array(
"",
$row->{$this->idkey},
$row->NAME,
$row->TABLE_NAME,
$row->atems_max,
$row->table_data_search,
@unserialize($row->ADMIN_TABLE),
@unserialize($row->USER_TABLE),
($row->STATE) ? 'Вкл' : 'Выкл',
$row->DESCRIPTION,
);
$i++;
}
return response()->json($responce);
}
public function edit() {
$idkey = $this->idkey;
$table = $this->table;
$join = $this->join;
$oper = \Request::input('oper');
$id = \Request::input('id');
switch ($oper) {
case 'add':
return response('Операция не позволена в данном контексте', 500);
break;
case 'edit':
$data = array();
$ADMIN_TABLE = \Request::input('ADMIN_TABLE');
$adm_table=array();
if(!empty($ADMIN_TABLE)){
$adm_table= explode(",", trim($ADMIN_TABLE));
}
$USER_TABLE = \Request::input('USER_TABLE');
$usr_table=array();
if(!empty($USER_TABLE)){
$usr_table= explode(",", trim($USER_TABLE));
}
$data['ADMIN_TABLE'] = serialize($adm_table);
$data['USER_TABLE'] = serialize($usr_table);
$data['NAME'] = \Request::input('NAME');
$data['atems_max'] = \Request::input('atems_max');
$data['TABLE_NAME'] = \Request::input('TABLE_NAME');
$data['table_data_search'] =\Request::input('table_data_search');
$data['DESCRIPTION'] =\Request::input('DESCRIPTION');
$data['STATE'] = \Request::input('STATE');
$this->grud->update_Designation($id, $data, $table, $idkey);
break;
case 'del':
$this->grud->delete_Designation($id, $table, $idkey);
break;
default:
return response('Операция не позволена в данном контексте', 500);
break;
}
Не в сети
А зачем тебе get и post запросы для loaddata и странные урлы "lists.edit" лучше "lists/edit" но это н суть
Там посмотри отправляются ли ключ по запросу (сеть)
Не в сети
А зачем тебе get и post запросы для loaddata и странные урлы "lists.edit" лучше "lists/edit" но это н суть
Там посмотри отправляются ли ключ по запросу (сеть)
Jack? благодарю - носом ткнули в ошибку.
Тему можно закрывать проблема была на стороне jqgrid.
Не в сети
Пожалуйста
Не в сети
Страницы 1