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 ...
随机推荐
- [POI2010]TEL-Teleportation
因为题目中要求 \(1 \sim 2\) 的最短路只有 \(5\),于是我们可以考虑直接使用人脑将图分层. 那么我们怎么定义每层的点呢?因为要使 \(1 \sim 2\) 的最短路只有 \(5\),我 ...
- SpringBoot使用IDEA设置的外部Tomcat启动
前言 使用springboot内嵌的tomcat启动是没问题,但是工程是要放到服务器上的tomcat的,所以springboot内嵌的能够启动,但不代表服务器的tomcat能启动起来,我就遇到了这个问 ...
- 【转】linux shell编程实例总结
查找当前目录中所有大于500M的文件,把这些文件名写到一个文本文件中,并统计其个数 find ./ -size +500M -type f | tee file_list | wc 在目录/tmp下找 ...
- 什么是UILabel
UILabel极其常用,功能比较专一:显示文字 UILabel的常见属性 @property(nonatomic,copy) NSString *text; 显示的文字 @property(nonat ...
- Kubernetes二进制(单/多节点)部署
Kubernetes二进制(单/多节点)部署 目录 Kubernetes二进制(单/多节点)部署 一.常见的K8S部署方式 1. Minikube 2. Kubeadmin 3. 二进制安装部署 4. ...
- Docker容器和宿主机互传文件
1.docker容器向宿主机传送文件 格式: docker cp container_id:<docker容器内的路径> <本地保存文件的路径> 例: docker cp 10 ...
- 二,配置jdk,安装tomcat.以及tomcat项目的发布
1.jdk配置 一.环境准备 Windows10 jdk-9.0.1 二.下载并安装JDK 选择一个适合自己的JDK版本下载并安装即可,具体流程不详述. 三.环境变量配置 1.右键桌面上"我 ...
- Jenkins+allure集成报告构建
1.点击新建item,新建一个job 对这个job进行配置 General模块,点击高级 勾选自定义的工作空间,填写项目目录 构建触发器和构建环境先不填写 构建模块,填写python main.py, ...
- flag_in_your_hand1
给了两个 文件 index.html 和 一个js文件 ,考察js代码审计能力首先借助浏览器来运行js 程序.用浏览器打开index.html,分析 js 代码: 首先无论在 token 输入框中输入 ...
- Vue框架简介和环境搭建
前言: 此篇随笔为个人学习前端框架Vue,js的技术笔记,主要记录一些自己在学习Vue框架的心得体会和技术总结,作为回顾和笔记使用. 这种写博客的方式,对刚开始学习Vue框架的我,也是一种激励,我相信 ...