Как изменить «editurl» и отправить «Редактировать форму» с помощью пользовательской кнопки в форме редактирования в jqGrid? - PullRequest
0 голосов
/ 14 февраля 2012

Я использую jqGrid.

Вот мой код:

    $("#list").jqGrid({
        url:'urlone.php',
        editurl:'somepage.php',
        datatype: 'json',
        mtype: 'POST',
        colNames:['ID','Name'],
        colModel :[ 
          {name:'cid', index:'cid'},
          {name:'name', index:'name'}
        ],
        "postData":{"oper":"grid"},
        "prmNames":{"query":"grid"},
        pager: '#pager'         
      }).navGrid('#pager',        {"edit":true,"add":true,"del":false,"search":false,"refresh":true,"view":false,edittitle: "Edit Candidate",addtitle: "Add Candidate",deltitle: "Delete Candidates",searchtitle: "Search Candidates",refreshtitle: "Refresh Data",viewtitle: "View Candidate",edittext: "Edit",addtext: "Add",deltext: "Delete",searchtext: "Search",refreshtext: "Refresh",viewtext: "View"},
      prmEdit,prmAdd);


    prmEdit = {
                "drag":false,"resize":false,"closeOnEscape":true,"dataheight":430,"datawidth":450,"width":500,"errorTextFormat":function(r){ return r.responseText;},"closeAfterEdit":true,viewPagerButtons:false,"editCaption":"Update Candidate",reloadAfterSubmit:true,recreateForm:true
             ,beforeShowForm: function($form) {
                    $form.parent().find('.EditButton').prepend('<a href="javascript:void(0)" id="qButton" class="fm-button ui-state-default ui-corner-all fm-button-icon-left">Update &amp; Qualify<span class="ui-icon ui-icon-flag"></span></a>');
            },beforeSubmit : function(postdata, formid){
                    $.ajaxFileUpload({
                        url: 'uploadResume.php?id='+postdata.cid+'&cname='+postdata.name, 
                        secureuri:false,
                        fileElementId:'resume',
                        dataType: 'json',
                        success: function (data, status) {
                            if(typeof(data.error) != 'undefined')
                            {
                                if(data.error != '')
                                {
                                    alert(data.error);
                                }else{
                                    alert(data.msg);
                                }
                            }
                            return[true,"Resume successfuly uploaded"];
                        },
                        error: function (data, status, e)
                        {
                            return[false,e];
                        }
                   });
                   return[true,"Resume not uploaded"];
            }, afterComplete : function (response, postdata, formid) {
                    var txt = '{"responseT":['+response.responseText+']}';
                    var obj = eval ("(" + txt + ")");
                    if(obj.responseT[0].msg == null) msgStr = "Undefined Error, Contact Admin!";
                    else msgStr = obj.responseT[0].msg;
                    openmsgbox(obj.responseT[0].err,msgStr);
            }
    };

    prmAdd = {  "drag":false,"resize":false,"closeOnEscape":true,"dataheight":430,"datawidth":450,"width":500,"errorTextFormat":function(r){ return r.responseText;},"closeAfterAdd":true,viewPagerButtons:false,"addCaption":"Add Candidate","bSubmit":"Add",reloadAfterSubmit:true,recreateForm:true, beforeSubmit : function(postdata, formid){
                    $.ajaxFileUpload({
                        url: 'uploadResume.php?id='+postdata.cid+'&cname='+postdata.name, 
                        secureuri:false,
                        fileElementId:'resume',
                        dataType: 'json',
                        success: function (data, status) {
                            if(typeof(data.error) != 'undefined')
                            {
                                if(data.error != '')
                                {
                                    alert(data.error);
                                }else{
                                    alert(data.msg);
                                }
                            }
                            return[true,"Resume successfuly uploaded"];
                        },
                        error: function (data, status, e)
                        {
                            return[false,e];
                        }
                   });
                   return[true,"Resume not uploaded"];
            }, afterComplete : function (response, postdata, formid) {
                    var txt = '{"responseT":['+response.responseText+']}';
                    var obj = eval ("(" + txt + ")");
                    if(obj.responseT[0].msg == null) msgStr = "Undefined Error, Contact Admin!";
                    else msgStr = obj.responseT[0].msg;
                    openmsgbox(obj.responseT[0].err,msgStr);
            }
    };

Я добавил пользовательскую кнопку с именем «Обновить и квалифицировать» в форму редактирования.Теперь, когда пользователь нажимает кнопку отправки по умолчанию, форма должна отправляться с использованием существующего editurl, но при нажатии кнопки «Обновить и квалифицировать» значение «editurl» должно быть изменено на «somepage.php? Do = qualify», и форма должнабыть представлен ... но я не могу понять, как это .. кто-нибудь может мне помочь ??

1 Ответ

0 голосов
/ 15 февраля 2012

Чтобы переслать щелчок с новой кнопки на исходную кнопку «Отправить», вы можете добавить код beforeShowForm со следующими строками

$("#qButton").click(function () {
    $("#sData").click();
});

Дополнительно вы можете установить любую переменную внутри *Обработчик 1005 * и тестирование переменной, чтобы отличить отправку от новой кнопки от отправки от исходной кнопки «Отправить».

Внутри обратного вызова onclickSubmit вы можете изменить свойство url:

onclickSubmit: function (params, posdata) {
    // first test something and then change the URL with
    params.url = "newUrl";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...