1

jqgridをjqueryフレームワークとして使用することに問題があります。

私の場合、テーブルに接続するCRUD関数であるテーブルがいくつかあります。

このテーブルには、idms_department、部門 (名前) の 2 つの ID があります。idms_department は自動インクリメント列です。

これが私のjqgrid構文です

    $(document).ready(function() {
            //alert("start");
            jQuery("#departments").jqGrid({
                mtype:'GET',
                url:'functions/get_dept.php',
                editurl:'functions/edit_dept.php',
                datatype: "JSON",
                colNames:['Department ID','Department'],
                colModel:[
                    {name:'idms_department',index:'idms_department', width:150, editable:false, key:true},
                    {name:'department',index:'department', width:800,editable:true}     
                ],
                loadComplete: function () {
                alert("OK");
                },    
                loadError: function (jqXHR, textStatus, errorThrown) {
                    alert('HTTP status code: ' + jqXHR.status + '\n' +
                          'textStatus: ' + textStatus + '\n' +
                          'errorThrown: ' + errorThrown);
                    alert('HTTP message body (jqXHR.responseText): ' + '\n' + jqXHR.responseText);
                },
                rowNum:10,
                rowList:[5,10,15],
                pager: '#pager-departments',
                sortname: 'idms_department',
                viewrecords: true,
                jsonReader: {repeatitems: true, idms_department: "idms_department" },
                sortorder: "asc",
                caption:"MSC Departments"
            });
            jQuery("#departments").jqGrid('navGrid','#pager-departments',{edit:true,add:true,del:true},{closeAfterEdit:true},{closeAfterAdd:true},{},{closeAfterSearch:true},{});
            jQuery("#departments").jqGrid('gridResize',{minWidth:350,maxWidth:850,minHeight:80, maxHeight:350});
            //alert("end");
            //start navigation system
            $('#navigation-bar').collapsible({
                effect: 'none',
        initialCollapse: true
    });
            //end navigation system 
        });

jqgridの追加ダイアログを使って新しいデータを追加できますが、フォームを編集したいときに編集できません。

問題は私が思うIDです。以前は、idms_department の編集可能は編集可能:true に設定されていましたが、正常に動作していましたが、編集可能:false にすると、ユーザーは新しい ID を自分で追加できないため、編集可能:false に設定し、行はダイアログから消えました。

関数が正しいデータを送信していることを示していますが、データは変更されていません。

edit php の機能は次のとおりです。

  if($oper == 'edit'){
   $deptid = $_POST['idms_department'];
   echo $deptid;
   $deptnm = $_POST['department'];
   $upt = "UPDATE ms_department SET idms_department = '$deptid', department = '$deptnm' WHERE idms_department = '$deptid'";
if(mysql_query($upt)){
    "Edited Successfully";
} else {
    die("Error Edit : " .mysql_error());
}
   mysql_close();
}

何か間違っていることでも?

4

1 に答える 1

0

jaGridはROWIDをとして送信しidますが、使用します

$deptid = $_POST['idms_department'];

そして後でWHERE idms_department = '$deptid'"UPDATE上記のステートメントを次のように変更する必要があります

$deptid = $_POST['id'];

またはprmNames: {id: "idms_department"}、jqGrid のオプションを使用"id"して、編集中に送信される変数の名前を変更します"idms_department"

于 2013-07-11T12:04:14.487 に答える