我想在一天中单击一次后禁用用户的提交按钮,并在第二天重新启用此按钮。
<input type="submit" class="myButton" id="option" value="submit"/>
我需要的是,当我点击提交按钮时,表单会提交并禁用当天的按钮。然后它只在第二天为该用户重新命名。
好吧,如果按钮被点击,如果是,在什么日期/时间,你应该以某种方式存储。或者只保留日期和时间,如果它是空的(只是第一次),它还没有被按下,否则只检查它是否比一天前多或少。
您可以将此值存储在数据库的文本文件中。
加载页面时,执行类似于以下伪代码的操作:
<?
if ($dateLastPressed < $aDayAgo)
{
echo '<input type="submit" class="myButton" id="option" value="submit" disabled = "disabled"/>';
}
else
{
echo '<input type="submit" class="myButton" id="option" value="submit"/>';
}
我想最简单的方法是将点击的时间和日期存储在数据库中。我假设你的用户有某种独特的身份,应该与点击的时间和日期一起存储。
当您为该用户检查数据库记录呈现此特定表单时,请将日期和时间与当前日期和时间进行比较,然后根据比较结果显示按钮。
<?php if ($dbRecord < $timeLimit) : ?>
<input type="submit" class="myButton" id="option" value="submit" disabled = "disabled"/>
<?php else : ?>
<input type="submit" class="myButton" id="option" value="submit"/>
<?php endif; ?>
你还需要在你的PHP脚本中进行某种验证,以确保用户不会在第一次提交表单后点击回车来滥发你的页面。
<form name="from" id="myForm"></form>
$('#myForm').bind('submit', function(){
$.ajax({
type:'POST',
cache:false,
url:'/phpFiles/Form.php', //your path file
data:$('#myForm').serializeArray(),
success:function(data){
var msg = $('.dearUserMsg');
msg.slideDown(100, function(){
msg.html(data);});// esse e a resposta do segundo form
}
});
return false;
});
$('#myForm').bind('submit', function(){ // essa e a submit perfeito
$.ajax({
type:'POST',
cache:false,
url:'secondForm.php',
data:$('#myForm').serializeArray(),
success:function(data){
$.fancybox({
content: data,
width: '90%',
height: '50%',
scrolling: 'no',
overlayColor: '#060',
overlayOpacity: .3,
transitionIn: 'elastic',
transitionOut: 'elastic',
easingIn: 'easeInSine',
easingOut: 'easeOutSine',
titlePosition: 'outside',
hideOnOverlayClick: false,
hideOnContentClick: false
}); //('#mainTag')
}
});return false;
});
<input type="submit" value="Submit" id="sButton" />
<div class="dearUserMsg" style="display:none"></div>
不要忘记显示无幻灯片下载作品
这是一样的,但反应会在一个fancybox 内
在这两个例子中,提交按钮只工作一次,按钮将正常