问题描述
|
任何人都可以指导我如何设置要在一天中的特定时间段内启用的表单。
或如何限制每天或每周等的表单提交总数。
例如
我需要在一天或一个小时内发送100个表单提交后立即自动禁用该表单。
每天应将100个提交添加到表格中。一旦发送了100个条目,表格在当天的剩余时间内将不再接受任何其他提交。
要求:我们每天需要处理一定数量的问题/意见。一旦某个表中的提交数量达到100或任何其他数量,则应禁用该表单。
我可以使用哪个MySQL查询?
还是可以通过Javascript禁用表格?
这是一个简单的形式:
<p><label for=\"name\">Name</label><br />
<input type=\"text\" name=\"name\" value=\"name\" id=\"name\" size=\"37\" /></p>
<p><label for=\"email\">Email Address</label><br />
<input type=\"text\" name=\"email\" value=\"email\" id=\"email\" size=\"37\" /></p>
<p><label for=\"comment\">Comment</label><br />
<textarea name=\"comment\" rows=\"8\" cols=\"35\" id=\"comment\">comment</textarea></p>
<p><input type=\"submit\" name=\"submit\" value=\"Submit\" /></p>
更新:感谢昆汀
这是我到达的代码。
SELECT count(*) AS count FROM data where channel_id=\'2\'\";
if (count <= 100) {show the form} else {show a message that the form is closed}
该表有3个字段,
[年]
[月]
和[天]。
当日期分为3个字段时,如何以这种方式使用CURDATE()?
解决方法
您无法执行此客户端操作。
如下查询:
select count(*) from myTable where myDateColumn >= CURDATE();
应该可以。
在决定是否应生成表单时以及在决定是否应接受表单提交时使用它。
,在显示表单的页面上:
查询数据库:在索引上使用MySQL COUNT来获取num行(1行= 1个响应??),其中Submitday =今天
请参阅以下链接,尤其是第二个链接,有关提取时间/日期的信息
http://dev.mysql.com/doc/refman/5.1/zh-CN/counting-rows.html
http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html
如果数量= 100
使用javascript \'display:none \'您的表格,\'display:block \'您的div
有<div id=\"toomuch\" style=\"display:none;\"><p>I\'m sorry this form is closed for the day,try again tomorrow</p></div>
,将时间字段添加到您的数据库中并使用curdate实例化,然后执行此查询
SELECT count(id) from TABLE where DATA=CURDATE();
然后,您可以在代码中实现一个函数来处理表单提交。
,如果我理解这项权利,这是您网站上显示的表格(不是控制面板发布的表格?)-如果是这样,这非常简单。像其他人在示例SQL语句中显示的那样,根据时间戳在数据库上记录记录检查(如果那是您存储表单数据的地方)。达到上限后,您可以显示无帖子值的表单,并使用javascript对其进行设置并设置样式,以使其看起来无法使用(或不完全显示)。
用伪代码:
Set timeframe = week,day,etc.
Set maxsubmissions = 100 (or whatever)
Set sumbissioncount = Query db to get number of submissions within timeframe
If submissioncount is less than maxsubmissions
{embed form}
Else
{embed disabled form}
End if
请注意,给出的sql示例仅每天计数,而不是每周计数,例如,您必须修改一周的时间-若要使其通用,请使用上述示例中范围之间的between子句或plunk var:请参阅相关主题:日期范围查询MySQL
,以下代码有效:
SELECT count(*) AS count FROM `channel`
where `day` = DAY(CURDATE())
and `channel_id` = \'2\'
现在,无论是否与CMS配合使用,都需要进行实时测试。表单是否隐藏。
如果我手动尝试编辑\“ {if count <= \'100 \'} \”,该表单不会隐藏,但是该表单确实会隐藏,但是我担心它是否会自动运行。我认为生病要等到早上。