HTML5向下拉框

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <link rel="stylesheet" href="../导航条/css/index.css">
        <title>导航条</title>
    </head>
    <body>
        <div>
            <div class="Button_frame">
                <button class="Button">首页</button>
                <div class="Button_frame-content">
                    <a href="#">商铺1 1</a>
                    <a href="#">商铺1 2</a>
                    <a href="#">商铺1 3</a>
                </div>
            </div>
            <div class="Button_frame">
                <button class="Button">公告</button>
                <div class="Button_frame-content">
                    <a href="#">商铺1 1</a>
                    <a href="#">商铺1 2</a>
                    <a href="#">商铺1 3</a>
                </div>
            </div>
            <div class="Button_frame">
                <button class="Button">新闻</button>
                <div class="Button_frame-content">
                    <a href="#">商铺1 1</a>
                    <a href="#">商铺1 2</a>
                    <a href="#">商铺1 3</a>
                </div>
            </div>
        </div>
    </body>
</html>

css样式

/**/
*{
    margin: 0;
    padding: 0;
}

/* 容器需要定位下拉内容 */
.Button_frame {
    position: relative;
    display: inline-block;
}

/* 下拉按钮样式 */
.Button {
    background-color: #4CAF50;
    color: white;
    padding: 16px;
    font-size: 16px;
    border: none;
    cursor: pointer;
    /* float: left; */
}


/* 下拉内容 (默认隐藏) */
.Button_frame-content {
    display: none;
    position: absolute;
    background-color: #f9f9f9;
    min-width: 160px;
    box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
}

/* 下拉菜单的链接 */
.Button_frame-content a {
    color: black;
    padding: 12px 16px;
    text-decoration: none;
    display: block;
}

/* 鼠标移上去后修改下拉菜单链接颜色 */
.Button_frame-content a:hover {background-color: #f1f1f1}

/* 在鼠标移上去后显示下拉菜单 */
.Button_frame:hover .Button_frame-content {
    display: block;
}

/* 当下拉内容显示后修改下拉按钮的背景颜色 */
.Button_frame:hover .Button {
    background-color: #3e8e41;
}

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
实现这个功能需要用到前端的JavaScript和后端的PHP。以下是一个实现的基本思路: 1. 在HTML中创建一个表格,并在表格的底部添加一个“新增”按钮。 2. 当用户点击“新增”按钮时,使用JavaScript动态向表格中添加一行。 3. 在新添加的行中添加一个“选择”按钮,当用户点击该按钮时,弹出一个模态框(可以使用Bootstrap的Modal组件)。 4. 在模态框中显示可选的数据,当用户选择一个数据时,关闭模态框并将数据加载到新添加的行中。 5. 在每一行的右侧添加“上移”和“下移”按钮,当用户点击这些按钮时,使用JavaScript实现行的排序。 6. 当用户完成所有操作并点击“保存”按钮时,使用AJAX将表格数据发送到PHP后端进行保存(可以使用MySQL数据库)。 下面是一个示例代码,可以作为参考: HTML代码: ```html <table id="myTable"> <thead> <tr> <th>列1</th> <th>列2</th> <th>操作</th> </tr> </thead> <tbody> <tr> <td>数据1</td> <td>数据2</td> <td> <button class="btn btn-sm btn-info" onclick="openModal(this)">选择</button> <button class="btn btn-sm btn-primary" onclick="moveUp(this)">上移</button> <button class="btn btn-sm btn-primary" onclick="moveDown(this)">下移</button> </td> </tr> </tbody> <tfoot> <tr> <td colspan="3"> <button class="btn btn-sm btn-success" onclick="addRow()">新增</button> <button class="btn btn-sm btn-primary" onclick="saveTable()">保存</button> </td> </tr> </tfoot> </table> <!-- 模态框 --> <div id="myModal" class="modal fade" tabindex="-1" role="dialog"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title">选择数据</h5> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">×</span> </button> </div> <div class="modal-body"> <ul id="dataList"> <li>数据1</li> <li>数据2</li> </ul> </div> <div class="modal-footer"> <button type="button" class="btn btn-secondary" data-dismiss="modal">关闭</button> <button type="button" class="btn btn-primary" onclick="selectData()">选择</button> </div> </div> </div> </div> ``` JavaScript代码: ```javascript // 新增一行 function addRow() { var table = document.getElementById("myTable"); var newRow = table.insertRow(-1); newRow.innerHTML = "<td></td><td></td><td><button class='btn btn-sm btn-info' onclick='openModal(this)'>选择</button> <button class='btn btn-sm btn-primary' onclick='moveUp(this)'>上移</button> <button class='btn btn-sm btn-primary' onclick='moveDown(this)'>下移</button></td>"; } // 打开模态框 function openModal(button) { var modal = document.getElementById("myModal"); modal.openButton = button; modal.show(); } // 选择数据 function selectData() { var modal = document.getElementById("myModal"); var selectedData = modal.querySelector("input[name='data']:checked").value; var row = modal.openButton.closest("tr"); row.cells[0].textContent = selectedData; modal.hide(); } // 上移一行 function moveUp(button) { var row = button.closest("tr"); if (row.previousElementSibling) { row.parentNode.insertBefore(row, row.previousElementSibling); } } // 下移一行 function moveDown(button) { var row = button.closest("tr"); if (row.nextElementSibling) { row.parentNode.insertBefore(row.nextElementSibling, row); } } // 保存表格数据 function saveTable() { var table = document.getElementById("myTable"); var data = []; for (var i = 1; i < table.rows.length - 1; i++) { var row = table.rows[i]; data.push({ column1: row.cells[0].textContent, column2: row.cells[1].textContent }); } // 使用AJAX将数据发送到后端进行保存 // ... } ``` PHP代码: ```php <?php // 连接数据库 $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "myDB"; $conn = new mysqli($servername, $username, $password, $dbname); if ($conn->connect_error) { die("连接失败: " . $conn->connect_error); } // 保存表格数据 $data = json_decode($_POST["data"]); foreach ($data as $row) { $sql = "INSERT INTO myTable (column1, column2) VALUES ('" . $conn->real_escape_string($row->column1) . "', '" . $conn->real_escape_string($row->column2) . "')"; if ($conn->query($sql) !== TRUE) { echo "保存失败: " . $conn->error; $conn->close(); exit; } } echo "保存成功"; $conn->close(); ?> ``` 注意:以上代码仅为示例,可能存在安全隐患和性能问题,请根据实际情况进行修改和优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

道墨思冥

你的鼓励将是我最大的动力!!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值