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

如果我設(shè)置id1的報(bào)名是50人,然后系統(tǒng)報(bào)名到50人了。怎么讓人家不能再從前臺(tái)報(bào)名了呢?
我自己寫了模塊表單的文件 \dayrui\App\baoming\Controllers\Roster.php 在提交前增加了一個(gè)控制判斷,可是還是不成功,達(dá)到最大量了,還是能報(bào)名。
<?php namespace Phpcmf\Controllers;
/**
* 二次開發(fā)時(shí)可以修改本文件,不影響升級(jí)覆蓋
*/
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, '提交失敗,已超過報(bào)名人數(shù)');
}
}
// 提交處理
$this->_Home_Post();
}
}另外希望官方能協(xié)助幫忙一下,怎么完善在內(nèi)容ID1的baoming表單里面,限制表單的title不能重復(fù),因?yàn)椴蛔鲞@個(gè)現(xiàn)在官方的表單文件,人家提交的時(shí)候,按10下,就會(huì)有10個(gè)重復(fù)的表單提交。
應(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, '提交失敗,已超過報(bào)名人數(shù)'); }開源是一種精神,但不是義務(wù),幫忙是情分,不幫也不要抱怨,建議大家多研究代碼、多閱讀代碼、多翻閱社區(qū)歷史問題!
回復(fù)@官方插件技術(shù)-岳老師

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