首页 > 解决方案 > 我怎样才能让我的提交按钮可点击一次并仍然执行我的 php?

问题描述

我已经尝试解决这个问题,但无论我尝试什么,按钮都不会保持禁用状态超过一秒钟,也不会执行我的 PHP 脚本。

我的网页上有一个重新启动按钮,单击该按钮会向管理员发送一封电子邮件,让他们知道已请求重新启动。我希望它能够被点击一次然后变成灰色以防止多次点击。我希望它在一定时间后再次激活

如何使重新启动按钮变为可单击一次(以排除执行过多脚本的可能性)并仍然执行 PHP 脚本?

这是我的代码:

<form action=index.php method= "post">
<input type="submit" value="Request Restart" id="alertTimerButton" name="clickMe" onclick="countClicks();"/>

<?php
if (isset($_POST['clickMe']))
{
    exec("/anaconda3/bin/python /Users/shoot_station_5/Sites/simpleblogs/restartemail.py \"$input_val\""); 
} else{

}

我尝试添加各种 javascript,例如:

function disable()
  $(document).ready(function(){
      $('.once-only').submit(function(){
      $(this).children('button').prop('disabled', true);
      alert("Thankyou a restart has been requested.");
  });
});

<script type="text/javascript">
  var ClickCount = 0;
  function countClicks() {
    var clickLimit = 1; //Max number of clicks
    if(ClickCount>=clickLimit) {
      alert("a restart has already been requested");
      return false;
    }
    else
    {
      ClickCount++;
      alert("Thankyou a restart has been requested.");
      return true;
    }
  }

标签: javascriptphpjqueryhtmlcss

解决方案


你必须改变

onclick="countClicks();"

onclick="return countClicks();"

那么您的 2. 解决方案确实有效。

您的 1. 解决方案有多个错误。不要将代码包装在 disable() 函数中。'按钮'之前缺少一个#。

我会这样做:

onclick="disabled=true;" 

够了。

因为您评论说您没有运行第二个解决方案,所以这里是代码:

var ClickCount = 0;
function countClicks()
{
    var clickLimit = 1; //Max number of clicks
    if (ClickCount >= clickLimit)
    {
        alert("a restart has already been requested");
        return false;
    }
    else
    {
        ClickCount++;
        alert("Thank you a restart has been requested.");
        return true;
    }
}
<form action="#" method="post">
    <input type="button" value="Request Restart" id="alertTimerButton" name="clickMe" onclick="return countClicks();"/>
</form>


推荐阅读