我有以下代码
$(document).ready(function(){
// class exists
if($('.delete').length) {
// add click handler
$('.delete').click(function(){
// ask for confirmation
var result = confirm('Are you sure you want to delete this?');
var vid = $(this).attr('id');
var row = $(this).parents('tr');
// do ajax request
if(result) {
$.ajax({
type:"POST",
url:"delete_joke.php",
data:{id:vid,garbage:'FG9g543hfh'},
dataType: "json",
success:function(response){
// hide table row on success
if(response == "true") {
row.fadeOut();
$('#errors').show();
$('#errors').html( '<div class="message green"> Successfully deleted!<img src="http://puppetweb.ca/play/views/admin/gfx/icon-close.gif" alt="Close this item" /> </div>' ).show();
}else{
$('#errors').show();
$('#errors').html( '<div class="message red"> Error deleting. <img src="http://puppetweb.ca/play/views/admin/gfx/icon-close.gif" alt="Close this item" /> </div>' ).show();
}
}
});
}
return false;
});
}
});
直到我想要显示成功的部分,我的php脚本在成功时打印“true”,在错误时打印“false”,如果我发出警告(响应),则显示单词true。但它显示错误删除成功和错误删除错误?
任何帮助?
答案 0 :(得分:0)
如果您确定它返回true / false,请尝试将if(response == "true")
替换为if(response)
。
要检查数据响应的类型,请尝试alert(typeof response)
并查看其显示的内容。
编辑:
由于您将数据类型称为JSON,请确保返回有效响应并将内容类型设置为响应中的json。
如果json
返回{"status":true}
,那么您应该使用if(response.status)
答案 1 :(得分:0)
这里的问题是范围。当成功函数运行时,行不等于任何东西。最简单的解决方案之一是传回id,确切地说,将其用作选择器并隐藏。
如果我这样做,我会从json切换到scrip并返回执行的JavaScript。这似乎比真或假更有用。