Php JqGrid删除函数

Php JqGrid删除函数,php,mysql,json,jqgrid,sql-delete,Php,Mysql,Json,Jqgrid,Sql Delete,我有一些问题,我想用JqGrid插件删除一些行 这是我的php删除函数,id的数据库列是idms\U department if($oper == 'del'){ $deptid = $_REQUEST['idms_department']; $del = "DELETE FROM ms_department WHERE idms_department =" . $deptid; if(mysql_query($del)){ "Delete Successfull";

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

这是我的php删除函数,id的数据库列是idms\U 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>

$(文档).ready(函数(){
//警报(“启动”);
jQuery(“部门”).jqGrid({
mtype:'GET',
url:'functions/get_dept.php',
editurl:'functions/edit_dept.php',
数据类型:“JSON”,
colNames:['Department ID','Department'],
colModel:[
{name:'idms_department',index:'idms_department',宽度:150,可编辑:true,add:true,del:true,key:true},
{名称:'department',索引:'department',宽度:800,可编辑:true,添加:true,删除:true}
],
loadComplete:函数(){
警报(“正常”);
},    
loadError:函数(jqXHR、textStatus、errorshown){
警报('HTTP状态代码:'+jqXHR.status+'\n'+
'textStatus:'+textStatus+'\n'+
'ErrorSprown:'+ErrorSprown);
警报('HTTP消息正文(jqXHR.responseText):'+'\n'+jqXHR.responseText);
},
rowNum:10,
行列表:[5,10,15],
传呼机:“#传呼机部门”,
sortname:“idms_部门”,
viewrecords:是的,
jsonReader:{repeatitems:true,idms_部门:“idms_部门”},
分拣员:“asc”,
描述:“示例部门”
});
jQuery(“#departments”).jqGrid('navGrid','#pager departments',{edit:true,add:true,del:true});
jqGrid('gridResize',{minWidth:350,maxWidth:850,minHeight:80,maxHeight:350});
//警报(“结束”);
});
如何获取idms_部门的值,因为我在firebug中看到,idms无法识别(null),因此sql函数正在下降。

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

});
toDelete=$(this.parent().parent().attr('id'); $(“#列表2”).jqGrid( “delGridRow”, 托德莱特, {url:'', reloadAfterSubmit:false} ); }); });
用这样的东西。将删除内容放在记录列表中。

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


此外,我建议您从
colModel
index
属性中删除不存在的属性
add:true、del:true
,这些属性的值与
name
属性的值相同,从
jsonReader
中删除默认值
repeatitems:true
,并将
gridview:true
autoencode:true
添加到网格中。您还可以删除
navGrid
{edit:true,add:true,del:true}
选项(删除最后一个参数),因为所有值都是默认值(请参阅)。

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

    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})
                                                                                              });

});

嗨,oleg,谢谢你的回答,但是现在当我更改值时,数据库值会更改,但是jqgrid会重新加载,并且不会显示任何内容。如果我创建一个新值,执行insert函数,数据存储在db中,但当重新加载时,jqgrid没有显示任何内容。你能帮我吗?@randytan:听起来很奇怪。jqGrid根据默认值重新加载网格(如果未明确使用
reloadAfterSubmit:false
)。这意味着您应该拥有完整的新数据。即使使用了错误的缓存HTTP头,也会看到旧数据,但不会什么都看不到。我建议您使用IE/Chrome的开发人员工具来跟踪服务器和jqGrid之间的完整HTTP流量。您将看到服务器是否提供了错误的数据。嗨,oleg,是的,我看到了firebug的响应。有两种回答是正确的。1.获取数据并显示在网格2中。编辑数据并将POST数据发送到服务器3。再次获取新数据并在网格中显示,但在第三步中,网格没有写入数据,尽管服务器发送了正确的数据。有什么可能吗?嗨@oleg,我到目前为止所做的,我创建了包含部门(这个线程)jqgrid的母版页,该页工作得非常好。然后我复制精确的页面和精确的php脚本,然后编辑一些数据库值,使其与列名匹配。但在本页中,jqgrid的行为很奇怪。我可以向您发送我对Firebug响应采取的逐步操作的屏幕截图。@randytan:您应该调试包含jqGrid源代码的JavaScript代码。您可以设置断点并跟踪响应的处理。您应该使用
jquery.jqGrid.src.js
而不是
jquery.jqGrid.min.js