Php JqGrid删除函数
我有一些问题,我想用JqGrid插件删除一些行 这是我的php删除函数,id的数据库列是idms\U departmentPhp 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";
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
。