[thinkPHP5專案實戰_30]留言板功能完善
實現的功能:開啟留言本頁面展示留言,並提供留言功能:
開啟application/index/controller/Guest.php控制器:
<?php
namespace app\index\controller;
class Guest extends Basic
{
public function index()
{
if(request()->isPost()){
$data=[
'nickname'=>input('inpName'),
'homepage'=>input('inpHomePage'),
'email'=>input('inpEmail'),
'content'=>input('txaArticle'),
'time'=>time(),
];
if(\think\Db::name('guest')->insert($data)){
return $this->success('留言成功,正在跳轉','Guest/index');
}else{
return $this->success('留言提交失敗','Guest/index');
}
return;
}
$guestres=\think\Db::name('guest')->select();
$this->assign('guestres',$guestres);
return $this->fetch('guest');
}
}
對應的模板guest.html:
<body>
{include file="Public/header" /}
<div class="container">
<div class="row">
<div class="col-sm-8 blog-main">
<div id="divMain">
<br>
<ul style="list-style: none;">
{volist name="guestres" id="vo"}
<li>
<div>
<img class="avatar" src="http://cn.gravatar.com/avatar/75e215cea7a9364665ca688b5a23a58a?s=40&d=mm" alt="" width="32" />
<strong>{$vo.nickname}</strong>
</div>
<div style="color: gray;">
<small> 釋出於 {$vo.time|date="Y年m月d日 H:i:s",###}
</div>
<div style="color: orange;font-style: italic;font-weight: bold;">{$vo.content}</div>
</li>
<br>
{/volist}
</ul>
<div class="post" id="divCommentPost">
<p class="posttop"><a name="comment">發表留言:</a></p>
<form id="frmSumbit" target="_self" method="post" action="{:url('guest/index')}">
<input type="hidden" name="inpId" id="inpId" value="2" />
<input type="hidden" name="inpArticle" id="inpArticle" value="" />
<input type="hidden" name="inpRevID" id="inpRevID" value="" />
<p>
<input type="text" name="inpName" id="inpName" class="text" value="" size="28" tabindex="1" />
<label for="inpName">名稱(必填)</label>
</p>
<p>
<input type="text" name="inpEmail" id="inpEmail" class="text" value="" size="28" tabindex="2" />
<label for="inpEmail">郵箱</label>
</p>
<p>
<input type="text" name="inpHomePage" id="inpHomePage" class="text" value="" size="28" tabindex="3" />
<label for="inpHomePage">網站連結</label>
</p>
<p>
<label for="txaArticle">正文(必填)(留言最長字數:1000)</label>
</p>
<p>
<textarea name="txaArticle" id="txaArticle" cols="50" rows="4" tabindex="5"></textarea>
</p>
<p>
<input name="btnSumbit" type="submit" tabindex="6" value="提交" class="button" />
</p>
</form>
<p class="postbottom">◎歡迎參與討論,請在這裡發表您的看法、交流您的觀點。</p>
</div>
</div>
</div>
</div>
</div>
{include file="Public/footer" /}
</body>
對應的資料表tp5_guest結構:
效果:
相關文章
- [thinkPHP5專案實戰_28]前臺文章"相關文章"的功能完善PHP
- [thinkPHP5專案實戰_29]前臺首頁和文章搜尋功能完善PHP
- 簡單專案實戰flutter(功能篇)Flutter
- 實戰迷你留言板學習
- 軟體測試專案實戰之功能測試 千鋒實戰教程
- dubbo專案實戰
- HarmonyOS 實戰專案
- iOS開發專案實戰——Swift實現ScrollView滾動條功能iOSSwiftView
- 最新《30小時搞定Python網路爬蟲專案實戰》Python爬蟲
- python實戰專案Python
- TypeScript + 大型專案實戰TypeScript
- AMP專案實戰分享
- LittleFox專案實戰
- Django實戰1-許可權管理功能實現-02:專案設定Django
- Flutter專案實戰(1):通用專案框架搭建Flutter框架
- 爬蟲專案實戰(一)爬蟲
- flask 專案開發實戰Flask
- 淺談 Angular 專案實戰Angular
- 爬蟲實戰專案集合爬蟲
- Vue專案實戰(一)——ToDoListVue
- MySQL專案實戰總結MySql
- 爬蟲實戰專案合集爬蟲
- 專案實戰小問題:
- koajs 專案實戰(二)JS
- 快速搭建gulp專案實戰
- 個人專案實戰(數獨)
- Vue 專案 SSR 改造實戰Vue
- Vue + Spring Boot 專案實戰(十四):使用者認證方案與完善的訪問攔截VueSpring Boot
- Spring Boot從入門到實戰:整合Web專案常用功能Spring BootWeb
- 【QCC302x專案實戰】兩人對講藍芽耳機藍芽
- go語言實戰教程:實戰專案資源匯入和專案框架搭建Go框架
- smbms專案核心功能實現
- 分析哪款專案管理軟體的資料視覺化功能比較完善?專案管理視覺化
- 專案實戰之gradle在實際專案中的使用Gradle
- Spark機器學習實戰 (十一) - 文字情感分類專案實戰Spark機器學習
- go語言實戰教程:Redis實戰專案應用GoRedis
- Flutter路由專案實戰之fluroFlutter路由
- Docker實戰之執行專案Docker