<a href="javascript:void(0);" id= "<php>echo $val[id]</php>" class="delete" >删除</a>
上面的html代码的意思:就是给删除添加一个href,这个href是个js函数,类似于超链接的作用,当然对于我这样的新手在刚开始的时候会有疑惑,我们平时的超链接不是这样的,网页中很多的javascript:void(0),那程序怎么知道用户点击删除后,会响应其真正对应的js函数呢?别急,这就是为什么会为删除添加id以及class这样的标签,相信我把js中的代码公布出来以后你就会明白了,代码如下:
jQuery(".list a.delete").click(function(){ if(confirm("你确定要删除吗?")){ var _this=this; var id = jQuery(_this).attr("id"); jQuery.ajax({ url : '/Search/index.php/Jason/delete?', data : {'id':id}, dataType : 'json', success : function(data){ var del = data.del; if(del == 1){//删除成功 jQuery("#"+id).parents(".list").remove(); }else{//删除失败 alert("删除失败"); } } }); } });
注意ajax在求php接口时的路径,也就是delete函数必须放在JasonAction.class.php中,此例子是必须这样的:
public function delete(){ if($this->isGet()){ $userId = session("uid");//用户登录 if(!empty($userId)){ $a = M('***'); $id = $this->_get('id'); $result=$a->where("id=$id")->delete();//删除 if($result > 0){ $arr = array("del"=>'1'); }else{ $arr = array("del"=>'0'); } $json_str = json_encode($arr); echo $json_str;//返回给js } } }
var del = data.del;这句是接受php代码返回来的json串中del这个key的value,进而在前台进行页面更新和响应.
if(del == 1){//删除成功 jQuery("#"+id).parents(".list").remove();//这句话就是后台删除成功后,直接在前台对响应的div进行删除,这样性能就会很快,无需进行后台数据的重新提取至前台页面中, }else{//删除失败 alert("删除失败"); }
即将:
jQuery("#"+id).parents(".list").remove();替换为:
jQuery("#"+id).parents(".list").slideUp("slow", function(){ jQuery(this).remove(); });
希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。