Мне нужно иметь текущий выбранный идентификатор строки, чтобы построить строку JSON, которая будет передана скрипту php, чтобы создать выбор, поэтому я включил ссылку на скрипт и код в функцию.
Тем не менее, это создает NetworkError: 403 Forbidden
.
Вот фрагмент кода:
editoptions:{dataUrl:function(){ var row_id = $('#tab3-grid').getGridParam('selrow'); var jsondata = JSON.stringify({"cu.STID": $('#tab3-grid').jqGrid('getCell', row_id, 'cu.STID'), "wv.SVID": $('#tab3-grid').jqGrid('getCell', row_id, 'wv.SVID')}); return 'php/items-se-script.php?data='+jsondata; },
Кто-нибудь знает, что происходит?
ОБНОВИТЬ:
{name:'it.PRID', index:'it.PRID', hidden: true, editable:true, edittype:'select', editoptions:{dataUrl:'php/items-se-script.php', defaultValue:'26', dataEvents:[{type:'change',fn:function(e){$('input#ip\\.Item').val($('option:selected', this).text());}}]}, formoptions:{label:'Item', elmprefix:'* '}, editrules:{edithidden:true, required:true}}, {name:'ip.Item', index:'ip.Item', hidden: true, sortable: true, editable:false, edittype:'text', editoptions:{readonly:true,size:20}, formoptions:{rowpos: 50, label:'Item'}, editrules:{required:true}} ], ajaxSelectOptions: { type:'POST', data: { data: function () { var row_id = $('#tab3-grid').getGridParam('selrow'); return JSON.stringify({ "cu.STID": $('#tab3-grid').jqGrid('getCell', row_id, 'cu.STID'), "wv.SVID": $('#tab3-grid').jqGrid('getCell', row_id, 'wv.SVID') }); } } }, url: 'php/workordertab-script.php', editurl:'php/workordertab-script.php',
Данные свойстваUrl не могут быть функцией. Если вам нужно отправить дополнительную информацию на сервер во время создания select, вы можете использовать опцию ajaxSelectOptions, как я описал здесь . В вашем случае это будет примерно следующее:
var $myGrid = $('#tab3-grid'); $myGrid.jqGrid({ // ... here all you current parameters which includes // editoptions: { dataUrl: 'php/items-se-script.php' } // for the corresponding column in colModel ajaxSelectOptions: { data: { // "data" here is jQuery.ajax parameter data: function () { // "data" here is the name of you custom parameter var row_id = $myGrid.getGridParam('selrow'); return JSON.stringify({ "cu.STID": $myGrid.jqGrid('getCell', row_id, 'cu.STID'), "wv.SVID": $myGrid.jqGrid('getCell', row_id, 'wv.SVID') }); } } } });