jquery jqgrid列表提交后删除数据
我想问的是,我有一个jqgrid列表,我想在屏幕上看到错误消息,以防删除失败。这是我的密码:jquery jqgrid列表提交后删除数据,jquery,jqgrid,Jquery,Jqgrid,我想问的是,我有一个jqgrid列表,我想在屏幕上看到错误消息,以防删除失败。这是我的密码: <html> <body> <script type="text/javascript" charset="utf-8"> $(document).ready(function() { jQuery("#list").jqGrid({ url:'../listeAjax', datatype: "json", c
<html>
<body>
<script type="text/javascript" charset="utf-8">
$(document).ready(function() {
jQuery("#list").jqGrid({
url:'../listeAjax',
datatype: "json",
colNames:['Id','Hizmet adı', 'Sektörler', 'Durum', 'Düzenle'],
colModel:[
{name:'onto_data_id',index:'onto_data_id', width:55, editable: false},
{name:'baslik',index:'baslik', editable:true, editrules:{required:true}, formoptions:{ elmprefix:"(*)"}},
{name:'sektor_list',index:'sektor_list', editable:false},
{name:'is_active',index:'is_active', align: 'center', editable:true, stype:'select',
editoptions:{value:":All;1:<?php echo lang('title_aktif')?>;0:<?php echo lang('title_pasif')?>", defaultValue:1},
edittype:"select"
},
{name:'duzenle',index:'duzenle', align: 'center', sortable:false, search: false, editable:false}
],
rowNum: <?php echo DEFAULT_GRID_ROWNUM; ?>,
rowList:[100,200,400,800],
pager: '#pager',
sortname: 'onto_data_id',
viewrecords: true,
sortorder: "desc",
multiselect: true,
width: 800,
height: "100%",
editurl: '../islemAjax',
caption: "Hizmetler",
mtype: "GET",
postData:{parent_id: '<?php echo $parent_id; ?>', parent_type: '<?php echo $parent_type; ?>'}
});
jQuery("#list").jqGrid('navGrid','#pager',
{edit:true, add:true, del:true, search:false},
{closeOnEscape:true, bottominfo:"<?php langValue('info_yildizlialanlar'); ?>",editData: {
parent_id: function() {
return '<?php echo $parent_id; ?>';
},
parent_type: function() {
return '<?php echo $parent_type; ?>';
},
tur: function() {
return '<?php echo ONTO_TYPE_HIZMET; ?>';
}
}},
{
beforeSubmit: function(postdata, formid){
var message;
$.ajax( {
type : 'POST',
dataType : 'json',
url : "<?php echo URL_YONETIMDATACONTROL; ?>",
data : 'baslik='+postdata.baslik + '&parent_id=' + <?php echo $parent_id; ?> + '&parent_type=' + <?php echo $parent_type; ?> + '&onto_type=' + <?php echo ONTO_TYPE_HIZMET ; ?>,
async : false,
success : function(result) {
if(result.status == true) {
complete = true;
} else {
complete = false;
}
message = result.message;
},
error: function (data, status, e) {
complete = false;
message = e;
}
});
return [complete, message, ""];
},
closeOnEscape:true, bottominfo:"<?php langValue('info_yildizlialanlar'); ?>",editData: {
parent_id: function() {
return '<?php echo $parent_id; ?>';
},
parent_type: function() {
return '<?php echo $parent_type; ?>';
},
tur: function() {
return '<?php echo ONTO_TYPE_HIZMET; ?>';
}
}},
{delData: {
parent_id: function() {
return '<?php echo $parent_id; ?>';
},
parent_type: function() {
return '<?php echo $parent_type; ?>';
}
}},
{}
);
jQuery("#list").jqGrid('filterToolbar');
} );
</script>
<h1>
<?php echo langValue('title_hizmetliste'); ?>
<?php
if(isset($sektor_baslik))
{
echo '(' . $sektor_baslik . ')';
}
?>
<a href="<?php echo URL_YONETIMHIZMETEKLE; ?>" title="<?php echo langValue('form_ekle')?>" class="tooltip">
<img src="<?php echo PATH_MEDIA_IMG_YONETIM; ?>icons/8_48x48.png" alt="" />
</a>
</h1>
<div class="pad20">
<?php if(isset($info)) { ?>
<div class="message success close">
<h2><?php echo $info; ?></h2>
</div>
<?php } ?>
<!-- Tabs -->
<div id="tabs">
<!-- First tab -->
<div id="tabs-1">
<table id="list"></table>
<div id="pager"></div>
</div>
</div>
</div>
</body>
</html>
这里有什么问题?服务器响应的错误处理主要有两种情况:1)响应包含一些错误HTTP代码,2)响应包含一些成功的HTTP代码。如果响应成功(从HTTP代码的角度),将执行回调
afterSubmit
。如果出现错误响应(从HTTP代码的角度),将执行回调errorTextFormat
。所以你需要使用类似
{
delData: {
parent_id: function() {
return '<?php echo $parent_id; ?>';
},
parent_type: function() {
return '<?php echo $parent_type; ?>';
}
},
errorTextFormat: function (jqXHR) {
alert(jqXHR.responseText);
return "Error code: " + data.status + ", Description: " + jqXHR.responseText;
}
}
{
delData:{
父对象id:函数(){
返回“”;
},
父类型:函数(){
返回“”;
}
},
errorTextFormat:函数(jqXHR){
警报(jqXHR.responseText);
返回“错误代码:+data.status+”,说明:+jqXHR.responseText;
}
}
errorTextFormat
的确切代码取决于出现错误时的jqXHR.responseText
的内容。在许多情况下,最好只使用jqXHR.responseText
的子集,以获得可读性最好的结果。看
我建议您不仅要测试代码将显式生成错误响应的情况,还要测试另外两种情况:1)常见服务器错误(例如,如果您将使用不存在的
url
进行删除操作)2)客户端错误,如服务器超时。好的,我试过了,但仍然不起作用。php代码返回false/0。但是警惕(jqXHR.responseText);什么也不提醒。此外,控制台中没有错误。@OnurGöker:我之前写过,响应的确切内容取决于您的服务器代码。以任何方式调用afterSubmit
或errorTextFormat
回调。第一个参数是XMLHTTPRequest
的超集。它包含关于服务器响应的大部分完整信息。我建议您检查有关Fiddler2、Firebug或IE或Chrome开发工具的HTTP响应,并将结果与任何调试器内部的jqXHR
进行比较。您应该能够处理jqXHR
中的所有信息。根据chrome控制台,响应为0。@OnurGöker:“响应”下的意思是什么?HTTP响应是什么样子的(HTTP状态代码、HTTP头、HTTP正文等)?我写道,jqXHR
是对象jqXHR.responseText
通常包含HTTP正文。在某些情况下,jqXHR.responseText
是未定义的(主要是在客户端Ajax错误的情况下)。什么是“0”?是不是jqXHR.responseText
?无论如何,这是服务器返回的内容。结果与成功的反应不同吗?
{
delData: {
parent_id: function() {
return '<?php echo $parent_id; ?>';
},
parent_type: function() {
return '<?php echo $parent_type; ?>';
}
},
errorTextFormat: function (jqXHR) {
alert(jqXHR.responseText);
return "Error code: " + data.status + ", Description: " + jqXHR.responseText;
}
}