本文目录一览:
- 1、thinkphp中ajax请求的值data
- 2、thinkphp每一行数据后有一个按钮,点击按钮删除改行数据
- 3、thinkphp怎么用ajax实现单选+多选删除
- 4、thinkphp 删除信息条目后,记录还显示在列表页上,想点击删除之后,对应条目在页面上消失,改如何实现
- 5、ThinkPHP实现删除的操作,现在是点击删除之后可以删除数据,但是返回的数据无法通过弹窗显示出来
thinkphp中ajax请求的值data
一般将前台页面搜索结果中,不喜欢的内容(链接),删除掉,因为整个网站的编程框架式thinkphp,运用js中的ajax对页面进行响应,调用后台php接口,实现前台和后台数据库的同时更新.
首先我们需要做的就是在前台页面中添加一个文本“删除”,可以这么添加:
复制代码代码如下:
a href="javascript:void(0);" id= "phpecho $val[id]/php" class="delete" 删除/a
上面的html代码的意思:就是给删除添加一个href,这个href是个js函数,类似于超链接的作用,当然对于我这样的新手在刚开始的时候会有疑惑,我们平时的超链接不是这样的,网页中很多的javascript:void(0),那程序怎么知道用户点击删除后,会响应其真正对应的js函数呢?别急,这就是为什么会为删除添加id以及class这样的标签,相信我把js中的代码公布出来以后你就会明白了,代码如下:-thinkphp点击按钮后ajax删除
复制代码代码如下:
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("删除失败");
}
}
});
}
});
大家看函数的头部:jQuery(".list a.delete").click(),jQuery后面的标签是很重要的,这就保证了jquery很准确的响应页面中用户点击的“位置”,添加的事件为click(),在click里添加响应事件的代码:var id = jQuery(_this).attr("id");获取a对应的id,因为这个id是我们删除数据库时用到的链接id,当然这种直接明文的方式不好,在这里只是介绍整个响应过程。调用ajax,实现异步的运行整个过程。我们设置了js接受的是json串,这里的方式应该有很多种吧,我没有去尝试,大家要是有兴趣可以自行尝试一下。/Search/index.php/Jason/delete?这句话就是js去请求php的接口,php接口对用的代码如下:-thinkphp点击按钮后ajax删除
注意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
}
}
}
相信大家对上面的代码不会陌生吧,整个过程都是thinkphp框架内部配置完毕的.
var del = data.del;这句是接受php代码返回来的json串中del这个key的value,进而在前台进行页面更新和响应.
复制代码代码如下:
if(del == 1){//删除成功
jQuery("#"+id).parents(".list").remove();//这句话就是后台删除成功后,直接在前台对响应的div进行删除,这样性能就会很快,无需进行后台数据的重新提取至前台页面中, -thinkphp点击按钮后ajax删除
}else{//删除失败
alert("删除失败");
}
整个响应的过程就是这样,至于效果优化,是优化和细化方面的问题,后来,身边的同事又告诉我前台移除响应链接的另一个动态效果:
即将:
复制代码代码如下:
jQuery("#"+id).parents(".list").remove();
替换为:
复制代码代码如下:
jQuery("#"+id).parents(".list").slideUp("slow", function(){
jQuery(this).remove();
});
thinkphp每一行数据后有一个按钮,点击按钮删除改行数据
把按钮写成a
a的href写成
{:U("控制器/删除方法?id=$vo[id]")}
这样就行了控制器可以用
$id=$this-_request("id");
这样来接收id这个参数
thinkphp怎么用ajax实现单选+多选删除
html:
li
a class="delete" href="__URL__/deleteSelected/navTabId/__MODULE__" target="selectedTodo" posttype="string" calback="navTabAjaxMenu" rel='ids' title="你确定要删除吗?" warn="请选择节点"span批量删除/span/a-thinkphp点击按钮后ajax删除
/li
table class="table" width="100%" layoutH="138"
thead
tr
th width="10"input type="checkbox" class="checkboxCtrl" group="ids" //th
th width="60"编号/th
/tr
/thead
tbody
volist id="vo" name="list"
tr
tdinput name="ids" type="checkbox" value="{$vo.id}" /td
td{$vo['id']}/td
/tr
/volist
/table
php:
public function deleteSelected() {
//删除指定记录
$name = $this-getActionName();
$model = D($name);
if (!empty($model)) {
$pk = $model-getPk();
$ids = $_REQUEST['ids'];
if (!empty($ids)) {
$condition = array($pk = array('in', explode(',', $ids)));
if (false !== $model-where($condition)-delete()) {
$sql = $model-_sql();
$this-success("删除成功!");
} else {
$this-error('删除失败!');
}
} else {
$this-error('非法操作');
}
}
原理是根据Web表单提交时可以传递数组,例如:
input type="text" name="firstname"
input type="text" name="lastname"
input type="text" name="email"
input type="text" name="address"
input type="text" name="tree[tree1][fruit]"
input type="text" name="tree[tree1][height]"
input type="text" name="tree[tree2][fruit]"
input type="text" name="tree[tree2][height]"
input type="text" name="tree[tree3][fruit]"
input type="text" name="tree[tree3][height]"
则传递过来的是:
$_POST[] = array(
'firstname'='value',
'lastname'='value',
'email'='value',
'address'='value',
'tree' = array(
'tree1'=array(
'fruit'='value',
'height'='value'
),
'tree2'=array(
'fruit'='value',
'height'='value'
),
'tree3'=array(
'fruit'='value',
'height'='value'
)
)
)
thinkphp 删除信息条目后,记录还显示在列表页上,想点击删除之后,对应条目在页面上消失,改如何实现
你的删除信息条目的操作应该使用的是AJAX技术吧?删除对应条目在AJAX返回成功后,可以使用jQuery的DOM操作中的remove操作直接移除元素。
ThinkPHP实现删除的操作,现在是点击删除之后可以删除数据,但是返回的数据无法通过弹窗显示出来
从你的代码没看出什么问题,建议你在js端调试一下,
比如:
function todelete($id) {
var url = '__URL__/deleteManager';
data = {};
data['id'] = $id;
$.post(url, data, function(result){
alert(result);// 看看服务端返回什么
});
}