薛乎乎~ 2024-05-14 16:03 采纳率: 96.2%
浏览 1
已结题

(标签-jquery|关键词-产品 )

jquery+html实现增删改查

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="images/logo.ico"rel="icon" type="image/logo-icon">
    <title>产品介绍</title>
    <style type="text/css">
        @import url("qiye.css");
        @import url("product.css");
    </style>
    <style type="text/css">
        
    </style>
    <script src="jquery-3.7.1.min.js"></script>
    <script src="product.js"></script>
    </head>
<body>
    <div class="flex-container1">
        <div class="box1">
            <input type="text"placeholder="请输入搜索内容">
            <button type="submit">搜索</button>
        </div>
</div>
    <div>
        <ul type="none">
            <li><a href="index.html"target="_blank"title="首页">首页</a></li>
            <li><a href="company_introduction.html"target="_blank"title="公司简介">公司简介</a></li>
            <li><a href="news_dynamic.html"target="_blank"title="新闻资讯">新闻资讯</a></li>
            <li><a href="product_introduction.html"target="_blank"title="产品介绍">产品介绍</a></li>
            <li><a href="employee_anti_counterfeiting.html"target="_blank"title="员工防伪">员工防伪</a></li>
            <li><a href="supply_chain.html"target="_blank"title="供应链">供应链</a></li>
            <li><a href="zhongxiaoer.html"target="_blank"title="众小二">众小二</a></li>
            <li><a href="message_boards.html"target="_blank"title="留言板">留言板</a></li>
            <li><a href="join_us.html"target="_blank"title="加入我们">加入我们</a></li>
        </ul>
    </div>
    <h1>小样臻选</h1>
    <h2 align="center">添加新产品</h2>
    <form id="addForm">
        <input type="text" id="nameInput" placeholder="产品名称" required>
        <input type="text" id="descriptionInput" placeholder="产品介绍" required>
        <input type="number" id="priceInput" placeholder="产品价格" required>
        <button type="submit"class="submit1">添加</button>
    </form>
    <br><br>
    <table id="productTable"border="1px"cellspacing="0"align="center">
        <thead>
            <tr>
                <th>ID</th>
                <th>产品名称</th>
                <th>产品描述</th>
                <th>产品价格</th>
                <th class="th">操作</th>
            </tr>
        </thead>
        <tbody></tbody>
    </table>
    
    

    <script>
        $(document).ready(function () {
    // 添加数据
    var products = [
        { id: 1, name: '抽纸', description: '80抽4层抽取式面巾纸 柔软纸巾 加厚 加大 大整箱发货', price: 39.9 },
        { id: 2, name: '厚汁肉酱米线', description: '整箱发货 6包装', price: 59.9 }
    ];
 
    function displayProducts(products) {
        var tableBody = $('#productTable tbody');
        tableBody.empty();
        //遍历
        for (var i = 0; i < products.length; i++) {
            var product = products[i];
            var row = `
                <tr>
                    <td>${product.id}</td>
                    <td>${product.name}</td>
                    <td>${product.description}</td>
                    <td>${product.price}</td>
                    <td><button class="editButton" data-id="${product.id}">修改</button> <button class="deleteButton" data-id="${product.id}">删除</button></td>
                </tr>
            `;
            //追加到表中
            tableBody.append(row);
        }
    }
 
    displayProducts(products);
 //添加产品信息
    $('#addForm').on('submit', function (e) {
        e.preventDefault();
        //获取添加的表格
        var name = $('#nameInput').val();
        var description = $('#descriptionInput').val();
        var price = parseFloat($('#priceInput').val());
        //判断价格是否为数字
        if (!isNaN(price)) {
            var newProduct = { id: products.length + 1, name, description, price };
            products.push(newProduct);
            displayProducts(products);
            clearForm('#addForm');
        } else {
            alert('请输入有效价格.');
        }
    });
 //为修改按钮提供响应
    $(document).on('click', '.editButton', function () {
        var productId = parseInt($(this).data('id'));
        var editedProduct = prompt('产品ID', `${productId}, '产品名称' ${products[productId - 1].name}, '产品介绍'${products[productId - 1].description}, '产品价格' ${products[productId - 1].price}`);
       if (editedProduct) {
            var fields = editedProduct.split(',');
            var index = products.findIndex(p => p.id === productId);
            products[index] = { id: productId, name: fields[1], description: fields[2], price: parseFloat(fields[3]) };
            displayProducts(products);
        }
    });
 //为删除按钮提供响应
    $(document).on('click', '.deleteButton', function () {
        var productId = parseInt($(this).data('id'));
        var confirmation = confirm(`你确定要删除ID为 ${productId}?的产品吗`);
        if (confirmation) {
            var index = products.findIndex(p => p.id === productId);
            products.splice(index, 1);
            displayProducts(products);
        }
    });
});
 
function clearForm(formId) {
    $(formId + ' input').val('');
}
    </script>
    <div class="box7">  
        <p>邮政编码:230088</p>
        <p>企业邮箱:servic@sanzhiyang.cn</p>
        <p>廉政邮箱:supplier@sanzhiyan.cn</p>
        <p>公司地址:安徽合肥市蜀山区磨子潭路1366号</p>
       <br>
  </div>
</body>
</html>

  • 写回答

1条回答 默认 最新

  • 笑面虎 2024-05-14 16:13
    关注

    以下内容由CHATGPT及笑面虎共同生成、有用望采纳:


    【您想要解决的问题】: 您的问题是如何使用 jQuery 和 HTML 实现一个简单的增删改查(CRUD)功能。具体来说,您希望在网页上添加一个表单来输入新的产品信息,并且能够将这些信息显示在表格中。同时,您希望为每个产品提供修改和删除的功能。

    【问题出现原因】: 问题出现的原因是您需要实现一个交互式的用户界面,允许用户添加新的产品信息,并且能够对现有的产品信息进行修改和删除。这通常涉及到前端的表单处理、事件监听、DOM 操作以及数据的显示和更新。

    【问题解决方案】: 您提供的代码已经包含了大部分所需的功能,包括添加产品、显示产品列表、删除产品以及提示用户输入修改信息。但是,代码中有一些需要改进的地方,比如修改产品信息的部分使用的是 prompt,这可能不是最佳的用户体验方式。下面是一个改进后的解决方案:

    1. 使用模态对话框或表单来代替 prompt,以便用户可以更直观地输入和修改产品信息。
    2. 对于价格输入,确保前端校验其为数字类型,并且考虑货币格式的显示。
    3. 对于删除操作,提供一个确认步骤以避免误操作。

    【提供代码】: 以下是对您现有代码的一些修改,以提高用户体验和代码的健壮性:

    // ...之前的代码保持不变
    
    // 修改产品信息的函数
    function editProductModal(productId) {
        var product = products.find(p => p.id === productId);
        var modalContent = `
            <div>
                <label>产品名称:</label>
                <input type="text" id="editName" value="${product.name}" required>
            </div>
            <div>
                <label>产品介绍:</label>
                <textarea id="editDescription" required>${product.description}</textarea>
            </div>
            <div>
                <label>产品价格:</label>
                <input type="number" id="editPrice" value="${product.price}" step="0.01" required>
            </div>
            <button type="button" onclick="updateProduct(${productId})">保存修改</button>
        `;
        var modal = createModal(modalContent);
        modal.showModal();
    }
    
    // 更新产品信息的函数
    function updateProduct(productId) {
        var name = document.getElementById('editName').value;
        var description = document.getElementById('editDescription').value;
        var price = parseFloat(document.getElementById('editPrice').value);
        if (!isNaN(price)) {
            var index = products.findIndex(p => p.id === productId);
            products[index] = { id: productId, name, description, price };
            displayProducts(products);
            closeModal();
        } else {
            alert('请输入有效价格.');
        }
    }
    
    // 创建模态对话框的函数
    function createModal(content) {
        var modal = document.createElement('dialog');
        modal.innerHTML = content;
        document.body.appendChild(modal);
        return modal;
    }
    
    // 关闭模态对话框的函数
    function closeModal() {
        var modals = document.getElementsByTagName('dialog');
        for (var i = 0; i < modals.length; i++) {
            modals[i].close();
        }
    }
    
    // 修改事件绑定
    $(document).on('click', '.editButton', function () {
        var productId = parseInt($(this).data('id'));
        editProductModal(productId);
    });
    
    // ...之后的代码保持不变
    

    【代码运行方式】: 您需要将上述代码替换到您现有的 <script> 标签中,并确保您的 HTML 页面中包含了 jQuery 库。您需要在支持 HTML5 的现代浏览器中运行此代码。

    【代码预期运行结果】: 当用户点击“修改”按钮时,将弹出一个模态对话框,允许用户输入产品名称、描述和价格。用户输入完毕后,点击“保存修改”按钮,产品信息将被更新到表格中。

    【推荐相关链接】:

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 9月13日
  • 已采纳回答 9月5日
  • 创建了问题 5月14日

悬赏问题

  • ¥15 35114 SVAC视频验签的问题
  • ¥15 impedancepy
  • ¥15 在虚拟机环境下完成以下,要求截图!
  • ¥15 求往届大挑得奖作品(ppt…)
  • ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
  • ¥50 浦育平台scratch图形化编程
  • ¥20 求这个的原理图 只要原理图
  • ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
  • ¥20 微信的店铺小程序如何修改背景图
  • ¥15 UE5.1局部变量对蓝图不可见