如何获取数据?

我有一个包含一系列图像的配置文件页面。 我想使用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: function(data){
  /*The code you need*/
});

前面的部分是代码执行的地方,“data”变量包含你从php文件返回的任何东西,它可以是数据,可以是简单的“真”或“假”,你可以选择发送给你的东西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.');
  }
});

前面的例子是在“成功”事件中的函数内部可以做的事情的一个实例。 在那里我处理一个“无效”状态,否则它是成功的,之后我刷新几个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';
}

你有两个明显的选择我可以想到:

  • 您返回的文本应该出现在提供给您的success回调函数的data参数中 - 但是您可能还需要确保它的格式与PHP返回的MIME Content-Type兼容,否则jQuery可能会抱怨它可以“解析它,或者:

  • 如果删除不起作用,则使用header()函数从PHP返回5xx Failure类型消息。 这应该会触发一个AJAX error回调,你需要提供这个回调。


  • 从delete.php返回删除是否成功。 在成功的情况下,甚至可以检查这些数据并进行适当处理。

    HTH。

    链接地址: http://www.djcxy.com/p/5765.html

    上一篇: how to get data back?

    下一篇: Android Webview HTML Loading Javascript Problem