动态表格(ajax+json),添加点击事件,获取点击按钮所在行的值

效果:(后期可以自己加css效果)
在这里插入图片描述
在这里插入图片描述

查找功能

在这里插入图片描述

1、数据库连接

package com.gk.dao;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class DaoConnect {
    public static Connection getConnect(){
        Connection con = null;
        String driver = "com.mysql.cj.jdbc.Driver";
        String url = "jdbc:mysql://localhost:3306/test?serverTimezone=UTC";
        String username = "root";
        String password = "123456";
        try {
            Class.forName(driver);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
        try {
            con = DriverManager.getConnection(url, username, password);
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
        if(con != null){
            System.out.println("连接成功");
        }
        return con;
    }
}

2、实体类

package com.gk.pojo;

public class Commodity {
    private  int id;
    private String name;
    private String brand;
    private String state;
    private double praise;
    private int sell;
    private double grade;

    public Commodity(int id, String name, String brand, String state, double praise, int sell, double grade) {
        this.id = id;
        this.name = name;
        this.brand = brand;
        this.state = state;
        this.praise = praise;
        this.sell = sell;
        this.grade = grade;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getBrand() {
        return brand;
    }

    public void setBrand(String brand) {
        this.brand = brand;
    }

    public String getState() {
        return state;
    }

    public void setState(String state) {
        this.state = state;
    }

    public double getPraise() {
        return praise;
    }

    public void setPraise(double praise) {
        this.praise = praise;
    }

    public int getSell() {
        return sell;
    }

    public void setSell(int sell) {
        this.sell = sell;
    }

    public double getGrade() {
        return grade;
    }

    public void setGrade(double grade) {
        this.grade = grade;
    }

    @Override
    public String toString() {
        return "Commodity{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", brand='" + brand + '\'' +
                ", state='" + state + '\'' +
                ", praise=" + praise +
                ", sell=" + sell +
                ", grade=" + grade +
                '}';
    }
}

3、数据库查找数据,并封装成list(Commodity类型)

package com.gk.dao;

import com.gk.pojo.Commodity;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

public class FindShop {
    public List<Commodity> findAll() throws SQLException {
        Connection con = DaoConnect.getConnect();
        String sql = "select * from shop";
        PreparedStatement pre = con.prepareStatement(sql);
        ResultSet re = pre.executeQuery();
        List<Commodity> list = new ArrayList<>();
        while(re.next()){
            int id = re.getInt(1);
            String name = re.getString(2);
            String brand = re.getString(3);
            String state = re.getString(4);
            double praise = re.getDouble(5);
            int sell = re.getInt(6);
            double grade = re.getDouble(7);
            Commodity com = new Commodity(id,name,brand,state,praise,sell,grade);
            list.add(com);
        }
        con.close();
        re.close();
        return list;
    }

}

4、servlet将list数据封装成json并传到前端

package com.gk.servlet;

import com.gk.dao.FindShop;
import com.gk.pojo.Commodity;
import net.sf.json.JSONArray;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

@WebServlet(name = "ShopServlet", urlPatterns = "/ShopServlet")
public class ShopServlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        response.setContentType("text/html;charset=utf-8");
        PrintWriter out = response.getWriter();
        FindShop find = new FindShop();
        List<Commodity> list = new ArrayList<>();
        try {
            list = find.findAll();
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
        net.sf.json.JSONArray json = JSONArray.fromObject(list);
        String json_str = json.toString();
        out.print(json_str);
        out.flush();
        out.close();
    }
}

5、前端页面

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>购物表</title>
</head>

<script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js">
</script>


<script>
    $(document).ready(function () {
        $.ajax({
            type:"post",
            url:"ShopServlet",
            dataType:"json",
            success:function (data){
                var t = $("#t-body");
                var d = $(data);
                for(var i=0; i<data.length; i++){

                    t.append("<tr>"
                        +"<td class='id'>"+data[i].id+"</td>"
                        +"<td >"+data[i].name+"</td>"
                        +"<td>" +data[i].brand+"</td>"
                        +"<td>"+data[i].state+"</td>"
                        +"<td>"+data[i].praise+"</td>"
                        +"<td>"+data[i].sell+"</td>"
                        +"<td>"+data[i].grade+"</td>"
                        +"<td>"+"<button class='btn'>"+"加入购物车"+"</button>"+"</td>"
                        +"</tr>");
                }
                $("#t-body").on('click','.btn',function(){
                    alert($(this).parents("tr").find(".id").text());
                })
            },
            error:function (){
                alert("失败了");
            }
        })
    })

    function find(){
        $("#t-body").empty();
        var tt = $("#text1").val();
        $.ajax({
            type:"post",
            url:"ShopServlet",
            dataType:"json",
            success:function (data){
                var t = $("#t-body");
                var d = $(data);
                var check = 0;
                for(var i=0; i<data.length; i++){
                    if(($.trim(tt) == $.trim(data[i].name)) || tt == ""){
                        t.append("<tr>"
                            +"<td class='id'>"+data[i].id+"</td>"
                            +"<td >"+data[i].name+"</td>"
                            +"<td>" +data[i].brand+"</td>"
                            +"<td>"+data[i].state+"</td>"
                            +"<td>"+data[i].praise+"</td>"
                            +"<td>"+data[i].sell+"</td>"
                            +"<td>"+data[i].grade+"</td>"
                            +"<td>"+"<button class='btn'>"+"加入购物车"+"</button>"+"</td>"
                            +"</tr>");
                        check = 1;
                    }
                }
                if(check == 1){
                    alert("查找成功");
                }else if(check == 0){
                    alert("查找失败,请重新查询");
                }
                $("#t-body").on('click','.btn',function(){
                    alert($(this).parents("tr").find(".id").text());
                })
            }
        })
    }

</script>

<body>

<table border="0" align="center" id="mytable">
    <tr>
        <th align="center"><p2>商品列表</p2></th>
    </tr>
    <tr>
        <td></td>
    </tr>
    <tr>
        <td align="left">
                商品名称:<input type="text" id="text1" name="name">
            <input type="button" id="bt-1" value="查找" onclick="find()">
        </td>
    </tr>
    <tr>
        <td align="right">
            <button><a href="FindCarServlet">进入购物车</a></button>
        </td>
    </tr>
</table>
<div style="height: 20px"></div>

<table border="1" cellspacing="0" align="center">
    <thead>
        <tr>
            <td>编号</td>
            <td>名称</td>
            <td>所属品牌</td>
            <td>描述</td>
            <td>价格</td>
            <td>销量</td>
            <td>买家评价</td>
            <td>操作</td>
        </tr>
    </thead>
    <tbody id="t-body">

    </tbody>
</table>

</body>
</html>

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值