| 插件名稱 | 模塊內(nèi)容表單 V1.28 |
| 插件作者 | 迅睿官方自營 |
| 最近更新 | 2025-06-04 11:39:33 |
| 用戶中心允許修改自己提交的表單數(shù)據(jù) |
官方表單辣手的問題,比如我要做一個報名系統(tǒng),主題ID1的 quota 是設(shè)定的最大報名量,roster_total 是系統(tǒng)記錄報名數(shù)量(自動統(tǒng)計的)

如果我設(shè)置id1的報名是50人,然后系統(tǒng)報名到50人了。怎么讓人家不能再從前臺報名了呢?
我自己寫了模塊表單的文件 \dayrui\App\baoming\Controllers\Roster.php 在提交前增加了一個控制判斷,可是還是不成功,達到最大量了,還是能報名。
<?php namespace Phpcmf\Controllers;
/**
* 二次開發(fā)時可以修改本文件,不影響升級覆蓋
*/
class Roster extends \Phpcmf\Home\Mform
{
public function index() {
$this->_Home_List();
}
public function show() {
$this->_Home_Show();
}
public function post() {
// 提交前的操作
if(IS_POST){
$a = \Phpcmf\Service::L('input')->get();
$b = \Phpcmf\Service::M()->db->table(SITE_ID.'_baoming')->get($a['cid'])->getRowArray();
$c = $b['roster_total'];
$d = $b['quota'];
$e = \Phpcmf\Service::M()->table(SITE_ID.'__baoming_form_roster')->where('cid', intval($a['cid']))->where('status', 1)->counts();
if ($c >= $d){
$this->_json(0, '提交失敗,已超過報名人數(shù)');
}
}
// 提交處理
$this->_Home_Post();
}
}另外希望官方能協(xié)助幫忙一下,怎么完善在內(nèi)容ID1的baoming表單里面,限制表單的title不能重復,因為不做這個現(xiàn)在官方的表單文件,人家提交的時候,按10下,就會有10個重復的表單提交。
應(yīng)用版權(quán):官方
應(yīng)用名稱:模塊內(nèi)容表單
$e = \Phpcmf\Service::M()->table(SITE_ID.'_baoming_form_roster')->where('cid', intval($this->index['id']))->where('status', 1)->counts(); if ($e >= $this->index['roster_total']){ $this->_json(0, '提交失敗,已超過報名人數(shù)'); }開源是一種精神,但不是義務(wù),幫忙是情分,不幫也不要抱怨,建議大家多研究代碼、多閱讀代碼、多翻閱社區(qū)歷史問題!
回復@官方插件技術(shù)-岳老師

牛!!要是能在解決 同一個內(nèi)容下 表單 的 title 不可以重復就更好了!
這還不簡單嗎
if (\Phpcmf\Service::M()->table(SITE_ID.'_baoming_form_roster')->where('title', $_POST['data']['title'])->counts()){ $this->_json(0, '提交失敗,標題重復了'); }?? 大神好,這個是整個模塊內(nèi)容的表單不允許重名,但是總內(nèi)容 cid1和 cid2的表單是可以重名的哦
比如總內(nèi)容 cid1下有個張三報名了,cid2張三還能報名,但是你上面的那個 如果cid1張三報名了,cid2 張三就不能報嗎了。。。。
回復@小孟學編程
代碼這玩意要學會變通
if (\Phpcmf\Service::M()->table(SITE_ID.'_baoming_form_roster')->where('cid', intval($this->index['id']))->where('title', $_POST['data']['title'])->counts()){回復@小孟學編程
if (\Phpcmf\Service::M()->table(SITE_ID.'_baoming_form_roster')->where('cid', intval($this->index['id']))->where('title', $_POST['data']['title'])->counts()){改成這個后 不成功了,還是能瘋狂的點擊 重復提交。
回復@官方插件技術(shù)-岳老師
$e = \Phpcmf\Service::M()->table(SITE_ID.'_baoming_form_roster')->where('cid', intval($this->index['id']))->where('status', 1)->counts(); if ($e >= $this->index['roster_total']){ $this->_json(0, '提交失敗,已超過報名人數(shù)'); }修改成這個 還是不成功,超過人數(shù)還是能繼續(xù)提交……
回復@優(yōu)速開發(fā)工作室 我的需求就是跟他一樣但我是用官方的圖書的章節(jié)表單,我想弄成以用戶組來控制每個用戶組的報名數(shù)量