JqG​​rid删除功能

时间:2013-07-01 07:55:21

标签: php mysql json jqgrid sql-delete

我有一些问题,我想使用JqGrid插件删除一些行

这是我的php删除功能,id的数据库列是idms_department

if($oper == 'del'){
   $deptid = $_REQUEST['idms_department'];
   $del = "DELETE FROM ms_department WHERE idms_department =" . $deptid;
   if(mysql_query($del)){
     "Delete Successfull"; 
   } else {
     die("Error Delete: " .mysql_error()."SQL : " .$del);
   }
     mysql_close();
}

和我的jqgrid设置

  <script type="text/javascript">
        $(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:true,add:true, del:true, key:true},
                    {name:'department',index:'department', width:800,editable:true, add:true, del: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:"Example Departments"
            });
            jQuery("#departments").jqGrid('navGrid','#pager-departments',{edit:true,add:true,del:true});
            jQuery("#departments").jqGrid('gridResize',{minWidth:350,maxWidth:850,minHeight:80, maxHeight:350});
            //alert("end");
        });
    </script>

如何获取idms_department的值,因为我在我的firebug中看到,idms无法识别(null)所以sql函数正在下降。

3 个答案:

答案 0 :(得分:1)

我正在为您粘贴示例代码,请参考它,可能会对您有帮助。

    jQuery("#list_requisitos").jqGrid(
                    {
                        url:'../ajax/common_form_detail.php?form_id='+form_id,
                        editurl:'../ajax/common_form_edit.php?form_id='+form_id,
                        datatype: "json",
                        colNames:['D','ID','AREA','PIN Transportador','Fecha creacion','Aprob. Gestor Operativo','Aprob. Gestor Administrativo','Usuario que registra','Contratista','Fecha EjecucionDe la Tarea','Periodo','Anexos'],
                        colModel:[{name:'boton_grupos_tematicos',index:'boton_grupos_tematicos',sortable:false, align:'center',width:'50',search:false},{name:'id',index:'id',editable:false,hidden:true},{name:'object_area',
                            index:'object_area',
                            formoptions:{elmsuffix:''},    
                            editable:true,
                            editrules:{required:true},
                            hidden:false,
                            search:true,
                            edittype:'select',
                            formatter:'select', 
                           editoptions: {value: ''}
                            },{name:'pin_transportador',
                            index:'pin_transportador',
                            formoptions:{elmsuffix:''},editrules:{required:true},editable:true,
                            hidden:false,
                            search:true,
                            editoptions: {size:80, maxlength: 1000}
                            },{name:"created_date",
                            index:"created_date",
                            formoptions:{elmsuffix:"(aaaa-mm-dd)"},
                            sorttype:"date", editoptions:{dataInit: function(element) {$(element).datepicker({dateFormat: "yy-mm-dd"})}},
                            search:true,
                            type:"text",
                            searchoptions:
                {
                                dataInit: seleccionarFecha,
                                attr: {title: "Selecciona una fecha"}
                }
                            },{name:'app_by_codinator',
                            index:'app_by_codinator',
                            editable:true,
                            search:true,
                            edittype:'select',
                            formatter:'select', 
                            editoptions: {value: '0:NO;1:SI;-1:RECHAZADO'}},{name:'app_by_manager',
                            index:'app_by_manager',
                            editable:true,
                            search:true,
                            edittype:'select',
                            formatter:'select', 
                            editoptions: {value: '0:NO;1:SI;-1:RECHAZADO'}},{name:"user_id",index:"user_id",type:"text",editable:false,hidden:false},{name:"contractor_id",index:"contractor_id",type:"text",editable:false,hidden:true},{name:"actual_task_done_date",index:"actual_task_done_date",type:"text",editable:false,hidden:false,editoptions:{dataInit: function(element) {$(element).datepicker({dateFormat: "yy-mm-dd"})}},},{name:"sumerized_date",index:"sumerized_date",type:"text",editable:false,hidden:false},{name:"attachments",index:"attachments",type:"text",editable:false,hidden:false}],
                        rowNum:20,
                        rowList:[20,50,100],
                        pager: '#pager_requisitos',
                        sortname: 'id',
                        viewrecords: true,
                        multiselect: true,
                        sortorder: "asc",
                        autowidth: true,
                        height: 400,
                        width: 900,
                        caption:"RG05 IN340_pin_transportador",
                    });
                    jQuery("#list_requisitos").jqGrid('navGrid','#pager_requisitos',{ edit:true,add:true,del:true,search:false},{width:780,recreateForm:true},{width:780,recreateForm:true})
                    .jqGrid('filterToolbar',{stringResult: false,searchOnEnter : false, autosearch: true})
                                                                                              });

});

答案 1 :(得分:0)

$(".deletethisrecord").live('click',function(e){ e.preventDefault(); 
toDelete = $(this).parent().parent().attr('id');
    $("#list2").jqGrid(
        'delGridRow',
        toDelete,
          { url: '<?php echo $edit; ?>', 
            reloadAfterSubmit:false}
    );
});

});

使用这样的东西。将删除记录在记录列表中。

答案 2 :(得分:0)

The documentation

delGridRow描述了在删除操作中将发送到服务器的内容。 rowid的名称是id,而不是您在代码中使用的idms_department(请参阅第$deptid = $_REQUEST['idms_department'];行)。您应该在语句中使用名称'id'或向jqGrid添加prmNames: {id: "idms_department"}选项。它更改了添加/编辑/删除操作中使用的默认名称id

此外,我建议您从add:true, del:truecolModel属性中删除不存在的属性index,其值与name属性的值相同,删除默认值{{ 1}}来自repeatitems: true并将jsonReadergridview: true添加到网格中。您还可以删除autoencode: true的{​​{1}}选项(删除最后一个参数),因为所有值都是默认值(请参阅the documentation)。