Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/235.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/453.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在jqGrid中在线编辑时将自定义参数传递给ajax请求_Php_Javascript_Jqgrid - Fatal编程技术网

Php 如何在jqGrid中在线编辑时将自定义参数传递给ajax请求

Php 如何在jqGrid中在线编辑时将自定义参数传递给ajax请求,php,javascript,jqgrid,Php,Javascript,Jqgrid,这是我的jqGrid处理程序 var myEditParams = { keys: true, extraparam: { ajax: function () { alert("in myEditParams:extraparam"); return "1"; } } }; var lastsel; jQuery("#list2").jqGrid({ data: data,

这是我的jqGrid处理程序

var myEditParams = {
    keys: true,
    extraparam: {
        ajax: function () {
            alert("in myEditParams:extraparam");
            return "1";
        }
    }
};
var lastsel;
jQuery("#list2").jqGrid({
        data: data,
        height: 250,
        emptyDataText: "No Records Found",
        width: $('#mainwrapper').width(),
        datatype: "local",        
        colNames:['Table Description','Display Table name'],
        colModel:[
            { name:'table_desc', index:'table_desc', sortable: false, align: 'left', editable: true, edittype: 'text', editoptions:{ size:40 }, formatoptions:{
                keys: true,
                editOptions: myEditParams
            } },
            { name:'display_table_name',index:'display_table_name', sortable: false }
        ],
        loadComplete: function(){
            $('.ui-jqgrid-htable').css('width',$('#mainwrapper').width()+'px');
             if ($('#list2').getGridParam('records') == 0){ // are there any records?
                DisplayEmptyText(true);
             }else{
                DisplayEmptyText(false); 
             }                    
        },
        rowNum:10,
        rowList:[10,20,30],
        pager: '#pager2',
        sortname: 'id',
        viewrecords: true,
        sortorder: "desc",
        caption:"Changelog Tables",
        postData: { ajax: "1" },
        onSelectRow: function(id){
            if(id && id!==lastsel){
                jQuery('#list2').jqGrid('restoreRow',lastsel);
                jQuery('#list2').jqGrid('editRow',id,true);
                $('#list2').jqGrid('setGridParam',id,{ ajax:"1" }); //wanted to set some custom params here.
                lastsel=id;
            }
        },
        editurl: "changeLog.php"
    });
当我执行一些就地编辑操作时,我想以ajax=1的形式发送一个额外的参数。我已经试过了所有的方法。但似乎什么都不管用。我几乎感到沮丧

我试过这个:

$("#list2").jqGrid('setGridParam',{postData:{ajax:'1'}});
没用。我还尝试设置
postData
param,正如您在处理程序中看到的那样。这也是行不通的。这里出了什么问题?请帮我解决这个问题

该方法支持
extraparam
。因此,您可以重新编写
onsetrow
以便:

onSelectRow: function (id) {
    var $myGrid = $(this); // it's better as jQuery('#list2')
    if (id && id !== lastsel) {
        $myGrid.jqGrid('restoreRow', lastsel);
        $myGrid.jqGrid('editRow', id, {
            keys: true,
            extraparam: { ajax: "1" }
        });
        lastsel = id;
    }
}

顺便说一下,您可以在
extraparam
中使用方法(函数)而不是属性。在以下情况下,它可以是完整的。调用
editRow
函数时,将计算
extraparam:{ajax:$(“#myControl”).val()}
等值。如果要使用
extraparam:{ajax:function(){return$(“#myControl”).val();}
,则将在保存值时计算
ajax
参数的值。目前,
$(“#myControl”).val()
可以有另一个值。

即使这样也不起作用。我完全糊涂了。没有一个解决方案是如何起作用的?@Shades88:从[答案]看。单击“添加”按钮并尝试保存某些内容。您将看到调用了
exraparam
中的函数。从下面看。它也有效。毕竟,您可以将演示与代码进行比较。好的,请检查更新的代码。我通过观看您的演示进行了更改,但仍然没有working@Shades88:对不起,你不能使用我建议中的任何内容!
onsetrow
中的代码仍然使用
setGridParam
,这没有任何帮助,您可以使用
formatter:'actions'
formattoptions
,但不使用
格式化程序本身。你应该用我发布的代码来替换你的电子版。嗨,是的,我没有用你的代码。我看到了,似乎您只是使用jqGrid的对象来调用方法,而不是jqGrid(“#list2”)。所以我忽略了它,并尝试了您提供的下一个代码。但那一个像魔术一样奏效。万分感谢,为我的愚蠢道歉:)