我們計劃做這么一個流程
> * 制作表單頁面
>* 用戶輸入信息 點擊發送按鈕
>* 控制器存入數據庫 返回json
>* 彈出成功提示,三秒后重載頁面
結構如下:
│ config.php
│ GuestbookPlugin.php
│
├─controller
│ IndexController.php(新文件)
│
├─data
│ config.php
│ guestbook.sql
│
├─model
│ PluginSyGuestbookModel.php(新文件)
│
└─view
widget.html(需修改)
* * * * *
首先制作前端,修改widget.html模板
為了簡單起見,我們就輸入一個input---姓名,關鍵是將整個兒流程跑通
此文件需要加上一些的css js
widget.html
~~~
<style type="text/css">
.section-guestbook {
background: #c2c9cd;
}
</style>
<div class="section section-guestbook">
<div class="row">
<div class="col-md-8 col-md-offset-2">
<p class="lead">{$desc}</p>
<div class="alert alert-success hidden" id="MessageSent">
{$messagesent}
</div>
<div class="contact-form">
<form id="guestbook-form" class="no-mar" role="form">
<div class="form-group sy-guestbook">
<label for="name">姓名<span class="require-item">*</span></label>
<input type="text" class="form-control" id="name" name="name" placeholder="">
<i class="fa fa-user form-control-guestbook"></i>
</div>
<input id="guestbook-submit" value="提交" class="submit-button btn btn-default">
</form>
</div>
</div>
</div>
</div>
<script src="__STATIC__/js/layer/layer.js"></script>
<script src="__STATIC__/js/ajaxForm.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$('#guestbook-submit').click(function () {
$('#guestbook-form').ajaxSubmit({
url: "{:cmf_plugin_url('guestbook://Index/addMsg')}",
type: "post",
success: function (data) {
//data.code為1代表成功,為0代表失敗(cmf固有ajax返回值)
if (data.code == 0) {
layer.msg(data.msg);
} else {
$('#MessageSent').removeClass("hidden");
layer.msg(data.msg, function () {
setTimeout(function () {
parent.location.reload();
}, 300);
});
}
}
});
return false;
});
});
</script>
~~~
PluginSyGuestbookModel.php
~~~
<?php
namespace plugins\guestbook\model;
use think\Model;
class PluginSyGuestbookModel extends Model
{
// 開啟自動寫入時間戳字段
protected $autoWriteTimestamp = true;
}
~~~
需要注意的是 這個名字一定需要是這個名字 與數據庫表名對應才行 不然報錯
IndexController.php
~~~
<?php
namespace plugins\guestbook\controller;
use cmf\controller\PluginBaseController;
use plugins\guestbook\model\PluginSyGuestbookModel;
class IndexController extends PluginBaseController
{
/**
* 提交留言
*/
public function addMsg()
{
// 獲取post數據
$data = $this->request->param();
// 實例化模型
$GuestbookModel = new PluginSyGuestbookModel();
$GuestbookModel->allowField(true)->data($data, true)->save();
$this->success('成功啦');
}
}
~~~
最后的實現效果如下




> 首先感謝WelkinVan 他寫的《ThinkCMF5從入門到精通》給了我很多幫助
> 點擊去《[ThinkCMF5從入門到精通](http://www.hmoore.net/welkinvan/thinkcmf5)》
>
- php套路
- 套路之類結構
- thinkphp分塊解析之Collection
- thinkphp基礎之collection
- Collection在thinkphp中的運用
- thinkcmf模塊分析
- Controller按界面點擊順序排列表
- user模塊-Controller分析
- portal模塊-Controller分析
- admin模塊-Controller分析
- user模塊-腦圖
- portal模塊-腦圖
- admin模塊-腦圖
- cmf公共函數解析-common.php
- thinkcmf點滴記錄
- 自定義標簽詳解
- 插件
- 系統信息插件
- 插件演示插件
- 留言板插件
- 留言板1 建立胚胎
- 留言板1-1 數據庫變化
- 留言板1-2 自定義鉤子
- 留言板2 連接數據庫
- 留言板3 讀取后臺界面數據
- 留言板4 前端模板
- 留言板5 分離cssjs文件
- 留言板6 驗證
- 留言板7 圖形驗證碼
- 留言板8 后臺留言列表頁
- 留言板9 后記
- 評論插件
- 1 分析數據表
- 2 CommentModel.php
- 3 UserModel.php
- 4 DCommentPlugin.php
- 前端調用代碼
- 喜歡插件
- 1 分析
- 2 收藏功能
- 3 插件建模
- 4 數據庫設計
- 5 插入一條數據
- 多語言
- thinkphp多語言
- thinkcmf多語言