think php 上下架修改+jq静态批量删除+ajax删除+全选
视图代码:
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<link rel="stylesheet" href="http://apps.bdimg.com/libs/bootstrap/3.3.0/css/bootstrap.min.css">
</head>
<body>
<form action="/homework/homework/index" method="get">
<input type="text" name="name" placeholder="请根据姓名进行搜索">
<input type="text" name="price" placeholder="请根据价格进行搜索">
<input type="submit" value="立即搜索">
</form>
<input type="button" value="批量删除" onclick="allDel()">
<table class="table">
<tr>
<td><input type="checkbox" id="allChecked"></td>
<td>商品名称</td>
<td>商品图片</td>
<td>商品分类</td>
<td>状态</td>
<td>商品库存</td>
<td>本店售价</td>
<td>操作</td>
</tr> {foreach $data as $k=>$v}
<tr id="del">
<td><input type="checkbox"></td>
<td>{$v.name}</td>
<td><img src="{$v.img}" alt=""></td>
<td>{$v.cate}</td>
<td>
{if $v.put==1}
<span onclick="upper({$v.id})" class="upper{$v.id}" put="1">上架</span>
{else}
<span onclick="upper({$v.id})" class="upper{$v.id}" put="2">下架</span>
{/if}
</td> <td>{$v.reserve}</td>
<td>{$v.price}</td>
<td>
<a href="{:url('homework/homework/edit',['id'=>$v.id])}">编辑</a>
<a href="javascript:void(0)" onclick="del({$v.id})">删除</a>
</td>
</tr>
{/foreach}
</table>
{$data->render()} </body>
</html>
<script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js">
</script>
<script>
function upper(id) {
// 1表示的上架 2 表示的下架
var put = $('.upper'+id).attr('put');//1
var text = $('.upper'+id).text();//上架
//判断
if (put == 1 ) {
put = 2;
text = '下架';
} else {
put = 1;
text = '上架';
}
$.ajax({
url: '/homework/homework/put',
type: 'POST',
data: {
id: id,
put: put,
},
dataType: 'JSON',
success:function (res){
console.log(res)
if (res.code==200){
$('.upper'+id).text(text);
$('.upper'+id).attr('put',put) }
} }) } //批量删除
function allDel() {
if (confirm('确定要删除吗?')) {
//获取选中的多选框
var checks = $(':checkbox:checked');
$(checks).each(function (k, v) {
$(v).parents('tr').remove();
})
}
} //全选
$("#allChecked").click(function () {
$(":checkbox").each(function (k, v) {
v['checked'] = true });
}) function del(id) {
$.ajax({
url: '/homework/homework/delete/id/' + id,
type: 'GET',
dataType: 'json',
success: function (res) {
if (res.code == 200) {
alert('删除成功');
$('#del').remove(); }
} })
} </script>
器代码:
<?php namespace app\homework\controller; use app\homework\model\HomeworkModel;
use think\Controller;
use think\Request; class Homework extends Controller
{
/**
* 显示资源列表
*
* @return \think\Response
*/
public function index()
{
//接受搜索关键字
$name = input('name');
$price=input('price');
$data = HomeworkModel::listInfo($name,$price);
if (!empty($name)){
foreach ($data as $k=>$v){
$v['name']=str_replace($name,"<font color='red'> $name</font>",$v['name']);
}
}
if (!empty($price)){
foreach ($data as $k=>$v){
$v['price']=str_replace($price,"<font color='red'> $price</font>",$v['price']);
}
}
$this->assign('data', $data);
return view();
} /**
* 显示创建资源表单页.
*
* @return \think\Response
*/
public function create()
{
//
return view();
} /**
* 保存新建的资源
*
* @param \think\Request $request
* @return \think\Response
*/
public function save(Request $request)
{
//
$params = $request->param();
$file = $request->file('img'); if ($file) {
$info = $file->move(ROOT_PATH . 'public' . DS . 'uploads');
if ($info) {
// 成功上传后 获取上传信息
// 输出 20160820/42a79759f284b767dfcb2a0197904287.jpg
$filename = '/uploads/' . $info->getSaveName(); $image = \think\Image::open('.' . $filename);
// 按照原图的比例生成一个最大为150*150的缩略图并保存为thumb.png
$image->thumb(150, 150)->save('.' . $filename);
$params['img'] = $filename;
} else {
// 上传失败获取错误信息
echo $file->getError();
}
}
$result = HomeworkModel::add($params);
if (!$result) {
$this->error('添加失败', '/homework/homework/save');
}
$this->success('添加成功', '/homework/homework/index'); } /**
* 显示指定的资源
*
* @param int $id
* @return \think\Response
*/
public function read($id)
{
//
} /**
* 显示编辑资源表单页.
*
* @param int $id
* @return \think\Response
*/
public function edit($id)
{
//
$data = HomeworkModel::showOneInfo($id);
$this->assign('data', $data);
return view(); } /**
* 保存更新的资源
*
* @param \think\Request $request
* @param int $id
* @return \think\Response
*/
public function update(Request $request, $id)
{
//
} /**
* 删除指定资源
*
* @param int $id
* @return \think\Response
*/
public function delete($id)
{
//
$res = HomeworkModel::del($id);
return json(['code' => 200, 'msg' => 'success', 'data' => $res]);
}
public function put(Request $request){
$post=request()->post();
$updata=[ 'put'=>$post['put']
];
$id=$post['id'];
//修改数据
$result=HomeworkModel::put($updata,$id);
if ($result){
return json(['code'=>200,'meg'=>'success','data'=>$updata]);
}else{
return json(['code'=>500,'msg'=>'error','data'=>'']);
} } }
模型代码:
<?php namespace app\homework\model; use think\Model; class HomeworkModel extends Model
{
//连接表名
protected $table = 'goodsave';
//商品添加
public static function add($params)
{ return self::create($params, true); }
//商品分页搜索
public static function listInfo($name, $price)
{ $config = [
'query' => ['name' => $name, 'price' => $price],
]; $model = new self();
if (isset($name)) {
$model = $model->where('name', 'like', "%$name%");
}
if (isset($price)) {
$model = $model->where('price', 'like', "%$price%");
}
$data = $model->paginate(2, false, $config);
return $data;
}
//编辑
public static function showOneInfo($id)
{
return self::find($id); } //删除
public static function del($id)
{
return self::destroy($id);
} //修改状态put
public static function put($updata, $id)
{
return self::update($updata, ['id' => $id], true);
} }
think php 上下架修改+jq静态批量删除+ajax删除+全选的更多相关文章
- MVC3学习:利用mvc3+ajax实现全选和批量删除
本例数据库操作使用EF code first; 先利用mvc自带的模板,先生成一个list视图,然后再手动添加复选框和删除按钮 <table> <tr> @*在标题行添加一个全 ...
- 在spring boot上基于maven使用redis——批量匹配并删除 (二)
一.背景 在搭建了项目之后,由于需要通过触发动作,并删除redis中多个key. 二.思路 在查询了jedis并没有类似的删除方法之后,事情就变得清晰起来.完成上述任务,分为两个步骤,第一,找到要删除 ...
- word 2013 题注、图注、插入图片自动修改大小、批量更新题注编号
1 .题注 图片下面的文字说明,如 图 1.1.1 2.图注 图的标题格式,可以右键修改段落为居中,选中图片,点下此格式快捷居中等其他格式 3. 题注插入 效果 如下 4.题注自动居中对齐 先点击图 ...
- Ado.net[登录,增删改查,Get传值,全选,不选,批量删除,批量更新]
[虽然说,开发的时候,我们可以使用各种框架,ado.net作为底层的东西,作为一个合格的程序员,在出问题的时候我们还是要知道如何调试] 一.增删改查 cmd.ExecuteReader();执行查询, ...
- jquery操作全选、批量删除、加减行
--------------------------------------------------------------------------------------- html静态页面 --- ...
- jq实现批量图片上传
http://blog.csdn.net/lmj623565791/article/details/31513065 jq实现批量图片上传 http://blog.csdn.net/lmj623565 ...
- Spring Boot2(十四):单文件上传/下载,文件批量上传
文件上传和下载在项目中经常用到,这里主要学习SpringBoot完成单个文件上传/下载,批量文件上传的场景应用.结合mysql数据库.jpa数据层操作.thymeleaf页面模板. 一.准备 添加ma ...
- linux(以ubuntu为例)下Android利用ant自动编译、修改配置文件、批量多渠道,打包生成apk文件
原创,转载请注明:http://www.cnblogs.com/ycxyyzw/p/4555328.html 之前写过一篇<windows下Android利用ant自动编译.修改配置文件.批量 ...
- asp.net mvc4 easyui datagrid 增删改查分页 导出 先上传后导入 NPOI批量导入 导出EXCEL
效果图 数据库代码 create database CardManage use CardManage create table CardManage ( ID ,) primary key, use ...
随机推荐
- Vue2和Vue3技术整理3 - 高级篇
3.高级篇 前言 基础篇链接:https://www.cnblogs.com/xiegongzi/p/15782921.html 组件化开发篇链接:https://www.cnblogs.com/xi ...
- 「JOISC 2014 Day1」巴士走读
「JOISC 2014 Day1」巴士走读 将询问离线下来. 从终点出发到起点. 由于在每个点(除了终点)的时间被过来的边固定,因此如果一个点不被新的边更新,是不会发生变化的. 因此可以按照时间顺序, ...
- js读取txt文件并下载
//我在vue中测试, 可行, 这个只适用于google浏览器, ie需要xObject对象 // 下载txt if (/(txt)$/.test(name[1])) { var xhr = new ...
- iOS 小技巧总结
1.获取准确的app启动所需时间 应用启动时间长短对用户第一次体验至关重要,同时系统对应用的启动.恢复等状态的运行时间也有严格要求,在应用超时的情况下系统会直接关闭应用.以下是几个常见场景下系统对Ap ...
- 通过版本号来判断用户是否是第一次登陆----By张秀清
@interface AppDelegate () @end @implementation AppDelegate - (BOOL)application:(UIApplication *)appl ...
- memcache启动多个服务
windows 7 64bit 环境下安装memcached 1.下载后解压到D:\memcached(下载地址:memcached-win64下载地址) 2.安装到windows服务,打开cmd命令 ...
- 前端语言之js(对比python快速入门)
昨日内容回顾 浮动 定位 溢出 透明度 模态框 今日内容概要 变量与常量 基本数据类型 数据类型内置方法 函数 常见内置对象 BOM与DOM操作 内容详细 1.变量与常量 # 在JS中声明变量需要使用 ...
- LeetCode随缘刷题之盛最多水的容器
package leetcode.day_01_30; /** * 给你 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点(i,ai) .在坐标内画 n 条垂直线,垂直线 i的两个端 ...
- Hadoop文件操作常用命令
1.创建目录 #hdfs dfs -mkidr /test 2.查询目录结构 #hdfs dfs -ls / 子命令 -R递归查看//查看具体的某个目录:例如#hdfs dfs -ls /test 3 ...
- F WebDriver and 环境配置
https://seleniumhq.github.io/docs/wd.html WEBDRIVER The biggest change in Selenium recently has been ...