PHP自己的框架留言板功能实现

news2025/1/10 12:12:03

目录

1、实现留言板功能效果

 2、创建留言板数据表

3、控制器提交和显示方法 

4、提交留言板html 

5、留言板列表html  


 

1、实现留言板功能效果

 2、创建留言板数据表

CREATE TABLE `msg` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(30) DEFAULT NULL COMMENT '留言板姓名',
  `text` varchar(100) DEFAULT NULL COMMENT '留言板内容',
  `time` varchar(30) DEFAULT NULL COMMENT '添加时间',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;

3、控制器提交和显示方法 

<?php
class indexCrl extends  CrlBase {
    //留言板提交功能
    public function index(){
        if($_SERVER['REQUEST_METHOD'] == 'POST'){
            if($_POST['name'] && $_POST['text']){
                $data=[
                    "name"=>$_POST['name'],
                    "text"=>$_POST['text'],
                    "time"=>date("Y-m-d H:i:s")
                ];

                $res=  table("msg")->insert($data);
                if($res){
                    echo json_encode(['status'=>1]);exit;
                }
            }
            echo json_encode(['status'=>0]);exit;
        }else{
            $this->display();
        }
    }
    //留言板列表
    public function lst(){
        $data=  table("msg")->select();
        $this->assign('data',$data);
        $this->display();
    }

}

4、提交留言板html 


<meta charset="UTF-8">
<!DOCTYPE html>
<html>
<head>
    <title>留言板</title>
</head>
<body>
<h1>留言板</h1>
<!-- 表单用于提交留言 -->
<form id="message-form">
    <label for="name">姓名:</label>
    <input type="text" id="name" required><br><br>

    <label for="message">留言内容:</label><br>
    <textarea id="message" required></textarea><br><br>

    <button type="submit">提交留言</button>
</form>
<!-- 用于显示留言的区域 -->
<div id="message-list"></div>
<script typet="text/javascript" src="http://libs.baidu.com/jquery/1.9.1/jquery.min.js"></script>
<script>
    // 当表单提交时
    document.getElementById("message-form").addEventListener("submit", function(e) {
        e.preventDefault(); // 阻止表单默认的提交行为
        // 获取用户输入的姓名和留言内容
        var name = document.getElementById("name").value;
        var message = document.getElementById("message").value;

        $.ajax({
            dataType: 'json',
            type: 'POST',
            url: '',
            data: {
                name: name,
                text: message
            },
            success: function (json) {
                if(json.status==1){
                    alert('提交成功');
                    // 创建一个新的留言元素
                    var newMessage = document.createElement("div");
                    newMessage.innerHTML = "<strong>" + name + ":</strong>" + message;
                    // 将新留言添加到留言列表中
                    document.getElementById("message-list").appendChild(newMessage);
                    // 清空表单输入
                    document.getElementById("name").value = "";
                    document.getElementById("message").value = "";
                }else{
                    alert('提交失败');
                }
            },
            error: function (jqXHR, textStatus, errorThrown) {
                alert('系统错误');
            }
        });



    });
</script>
</body>
</html>

5、留言板列表html  


<!DOCTYPE html>
<html>
<head>
    <title>留言板</title>
    <style>
        table {
            border-collapse: collapse;
            width: 100%;
        }

        th, td {
            padding: 8px;
            text-align: left;
            border-bottom: 1px solid #ddd;
        }

        th {
            background-color: #f2f2f2;
        }
    </style>
</head>
<body>
<h1>留言板</h1>

<!-- 用于显示留言的区域 -->
<table id="message-table">

    <tr>
        <th>姓名</th>
        <th>留言内容</th>
        <th>时间</th>
    </tr>

    {foreach $data as $key=>$item}
    <tr>
        <td>{$item['name']}</td>
        <td>{$item['text']}</td>
        <td>{$item['time']}</td>
    </tr>
    {/foreach}

</table>
</body>
</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/981883.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

FullGC 40 次/天优化为 10 天 1 次

问题 前一段时间,线上服务器的 FullGC 非常频繁,平均一天 40 多次,而且隔几天就有服务器自动重启了,这表明服务器的状态已经非常不正常了,得到这么好的机会,当然要主动请求进行调优了。 未调优前的服务器 GC 数据,FullGC 非常频繁。 首先服务器的配置非常一般(2 核 4…

公园气象站:用科技力量,感知气象变化

在城市的喧嚣中&#xff0c;公园成为人们休闲娱乐的宁静之地。而在这些公园中的公园气象站静静地矗立着&#xff0c;不仅为公园的日常运营提供着重要数据&#xff0c;还在为游客的安全保驾护航。 用科技力量&#xff0c;感知气象变化 科技的创新为气象监测提供了更为精准的手…

iOS 16.4更新指南:问题解答与新功能一览

我应该更新到iOS 16.4吗&#xff1f;这是许多iPhone用户在新更新可用时问自己的一个常见问题。最新的iOS版本提供了各种功能和改进&#xff0c;因此更新的诱惑力很大。 但是&#xff0c;在更新之前&#xff0c;你应该考虑几个因素&#xff0c;以确保安装过程顺利成功。这些因素…

Android 九宫格布局

效果图 实现思路&#xff1a; 1.使用GridView来实现九宫格布局&#xff0c;设置numColumns3。 2.图标使用的是Font Awesome矢量图标&#xff0c;详情可以参考Android 在APP中使用 Font Awesome 图标_.fa-headphones_清山博客的博客-CSDN博客 实现步骤&#xff1a; 1.布局文…

关于vscode的GitLens插件里的FILE HISTORY理解

最近在用vscode的GitLens插件开发项目遇到这个疑问&#xff0c;先看图&#xff1a; 每当我点击FILE HISTORY 一个commit时&#xff0c;正常来说显示器会自动将点击的提交版本和它上一个提交版本进行比较&#xff0c;如果单纯这么理解的话就错了&#xff0c;因为GitLens的File …

基于循环队列和信号量的生产和消费者模型

这一节为什么要基于信号量来实现同一个模型&#xff0c;原因&#xff1a; void push(const T& in){pthread_mutex_lock(&_lock);while(is_Full()){//这里说明阻塞队列是满的&#xff0c;需要让生产者等待pthread_cond_wait(&_pcond,&_lock);}//这里说明阻塞队列…

jupyter 格式化与快捷键

1、标题&#xff1a; # 一级标题 ## 二级标题 ### 三级标题 2、 加粗文本&#xff1a; **加粗文本** 3、斜体文本&#xff1a; _斜体_ 4、删除线 ~删除线~ 5、高亮文本 高亮文本 6、区块引用 > 我是引用文字 >> 我是第二层 >&g…

提高广播新闻自动语音识别模型的准确性

语音识别技术的存在让机器能够听懂人类的语言&#xff0c;让机器理解人类的语言。语音识别技术发展至今&#xff0c;已经应运而上了各种各样的语音智能助手&#xff0c;可能有一天我们身边的物体都能和我们说话&#xff0c;万物相连的时代也如期而至。 数据从何而来&#xff1…

FPN模型

【简介】 2017年&#xff0c;T.-Y.Lin等人在Faster RCNN的基础上进一步提出了特征金字塔网络FPN(Feature Pyramid Networks)技术。在FPN技术出现之前&#xff0c;大多数检测算法的检测头都位于网络的最顶层(最深层)&#xff0c;虽说最深层的特征具备更丰富的语义信息&#xff0…

Mybatis 动态SQL - 使用foreach标签查询数据、批量新增、批量修改、删除数据

前面我们介绍了使用Mybatis完成数据的增删改查&#xff0c;并且也了解了如何在Mybatis中使用JDK的日志系统打印日志&#xff1b;本篇我们介绍使用Mybatis的动态SQL完成查询数据、批量新增、批量修改、删除数据。 如果您对数据的增删改查操作和Mybatis集成JDK日志系统不太了解&…

基于FPGA的RGB图像转化为灰度图实现,通过MATLAB进行辅助验证

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 vivado2019.2 matlab2022a 3.部分核心程序 timescale 1ns / 1ps // // Company: // Engineer: // // Create Date: 202…

js中添加屏蔽F12 审查元素、屏蔽开发者工具、屏蔽右键菜单、屏蔽剪切、屏蔽选中操作

在看某个网站时&#xff0c;看到一段话想复制一下&#xff0c;结果复制不了。想打开F12看看元素进行复制&#xff0c;也不行&#xff0c;没有反应。最后通过打开开发者工具看看&#xff0c;结果一打开就跳到about:blank。 看到这操作一脸懵逼&#xff0c;小样的&#xff0c;还有…

iPhone15就要到来,iPhone14可能会铺天盖地地降价

智能手机并没有变得更便宜&#xff0c;这就是为什么如果你在购买新设备&#xff0c;值得记住去年的型号。苹果即将推出的iPhone 15系列预计将于本月发布&#xff0c;有传言称9月12日将举行苹果活动。当他们真的宣布时&#xff0c;我们很可能也会看到iPhone 14的价格在iPhone 15…

【项目经验】elementui抽屉(从下到上方向)实现向上拉伸

效果图 直接上代码 <template><div><el-button click"drawerBtn" type"primary" style"margin-left: 16px;">点我打开</el-button><el-drawer title"我是标题" :modal"false" :wrapperClosable…

centos7 下使用docker安装常见的软件:Redis

关于docker的基础知识&#xff0c;请见《别在说自己不知道docker了&#xff0c;全文通俗易懂的给你说明白docker的基础与底层原理》 在自己学习的过程中经常会需要动手安装一下常见的工具&#xff0c;本篇就手把手带你用docker安装一遍。 jdk安装 如果先要更换之前的jdk从第…

汽车级肖特基二极管DSS220-Q 200V 2A

DSS220-Q是什么二极管&#xff1f;贵司有生产吗&#xff1f; 肖特基二极管DSS220-Q符合汽车级AEC Q101标准吗&#xff1f; DSS220-Q贴片肖特基二极管参数是什么封装&#xff1f;正向电流和反向电压是多大&#xff1f; DSS220-Q肖特基二极管需要100KK&#xff0c;有现货吗&#…

LeetCode 48题: 旋转图像

题目 给定一个 n n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在 原地 旋转图像&#xff0c;这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。 示例 1&#xff1a; 输入&#xff1a;matrix [[1,2,3],[4,5,6],[7,8,9]]…

LeetCode刷题笔记【24】:贪心算法专题-2(买卖股票的最佳时机II、跳跃游戏、跳跃游戏II)

文章目录 前置知识122.买卖股票的最佳时机II题目描述贪心-直观写法贪心-优化代码更简洁 55. 跳跃游戏题目描述贪心-借助ability数组贪心-只用int far记录最远距离 45.跳跃游戏II题目描述回溯算法贪心算法 总结 前置知识 参考前文 参考文章&#xff1a; LeetCode刷题笔记【23】…

Ansible-roles学习

目录 一.roles角色介绍二.示例一.安装httpd服务 一.roles角色介绍 roles能够根据层次型结构自动装载变量文件&#xff0c;tasks以及handlers登。要使用roles只需在playbook中使用include指令即可。roles就是通过分别将变量&#xff0c;文件&#xff0c;任务&#xff0c;模块以…

Python爬虫(十八)_多线程糗事百科案例

多线程糗事百科案例 案例要求参考上一个糗事百科单进程案例:https://cloud.tencent.com/developer/article/1021994 Queue(队列对象) Queue是python中的标准库&#xff0c;可以直接import Queue引用&#xff1b;队列时线程间最常用的交互数据的形式。 python下多线程的思考…