我有一个包含一系列图像的个人资料页面.我想使用jQuery允许用户从服务器中删除图像并在不重新加载整个页面的情况下更新页面.当它成功时,它将从页面中删除包含div的图像.我的删除功能是
PHP;很简单:
delete.PHP
<?PHP
if (isset($_POST['id'])) {
if (unlink($_POST['id'])) {
echo "success";
}
else {
echo "failure";
}
}
?>
(已经有用户身份验证,只是为了让他们进入调用delete.PHP的页面.)
这是一个显示图像的html – 一个接一个地最多可以有5个这样的块:
<div class="Box"> <img src="uploads/t_10DOT_22C_1111_1300370702_3.jpg" /> <h5><a rel="external" href="uploads/10DOT_22C_1111_1300370702_3.jpg">See full version</a></h5> <a href="#" id="10DOT_22C_1111_1300370702_3.jpg" class="delete" onclick="return ConfirmDelete();" >x</a> <div class="clear"></div> </div>
到目前为止,我的jQuery看起来像这样:
$(document).ready(function() {
$('#load').hide();
});
$(function() {
$(".delete").click(function() {
$('#load').fadeIn();
var commentContainer = $(this).parent();
var id = $(this).attr("id");
var string = 'id='+ id ;
$.ajax({
type: "POST",url: "delete.PHP",data: string,cache: false,success: function(data){
commentContainer.slideUp('slow',function() {$(this).remove();});
$('#load').fadeOut();
}
});
return false;
});
});
我关心的部分是ajax帖子.成功部分如何实际运作?我需要在我的PHP文件中做什么才能让ajax知道删除是成功还是失败?
一旦ajax post请求完成执行你发送请求的文件,如果没有错误,你在“success”部分添加的代码就会被执行,在这种情况下
success: function(data){
/*The code you need*/
});
前一部分如果代码执行的地方,“data”变量包含你从PHP文件返回的任何内容,它可以是数据,它可以是一个简单的“true”或“false”,你选择发送什么来让你的jQuery知道它是否成功.
希望这个对你有帮助.
编辑注意:
function(applyData){
if ( applyData.toString() == 'invalid' ){
$('#pollError').html('Global styles cannot be modified.');
$('#pollNotice').html('');
}
else{
$('#pollNotice').html('The changes to the style have been applied.');
}
});
前面的示例是“success”事件中函数内部可以执行的操作的实例.在那里我处理“无效”状态,否则它成功,之后我刷新几个DIV以防无效或更新单个DIV以防成功.
这是执行的PHP:
if ( !$db->isGlobal($id_css)){
$data['id_poll'] = $id_poll;
$data['id_css'] = $id_css;
$data['css'] = $css;
$db->applyCssChanges($data);
}
else{
echo 'invalid';
}