2016-01-21 5 views
2

我有下面的表單,在PHP請求一個可能需要一段時間的Curl表單之後。因此,他們不斷按下提交按鈕,認爲沒有任何事情發生。這會導致數據庫中有多個條目。有人可以幫助我,讓我知道該怎麼投入來制止這一點。PHP停止一個人按多次提交

我在第一個答案中嘗試了Javascript解決方案,但它停止了後面的PHP腳本。不是我想要的。對不起

<!DOCTYPE html> 
<html> 
<head> 

     <meta charset="utf-8"> 
     <link href="css2/style.css" rel='stylesheet' type='text/css' /> 
     <meta name="viewport" content="width=device-width, initial-scale=1"> 
     <script type="application/x-javascript"> addEventListener("load", function() { setTimeout(hideURLbar, 0); }, false); function hideURLbar(){ window.scrollTo(0,1); } </script> 
     <!--webfonts--> 
     <link href='//fonts.googleapis.com/css?family=Open+Sans:400,300,600,700,800' rel='stylesheet' type='text.css'/> 
     <!--//webfonts--> 

     <center><img class="displayed" src="images/logo.jpg" alt="Logo" style="width:128px;height:128px;"></center> 

</head> 

<body> 
    <div class="main"> 
     <form action="" method="POST" enctype="multipart/form-data" id="contactform" > 
     <input type="hidden" name="action" value="submit"> 
      <h1><span>Sign Up</span> <lable> The Brook on Sneydes</lable> </h1> 
      <div class="inset"> 
       <p> 
      <center><label ><?php echo $text; ?></label></center> 

         <label for="first">First Name</label> 
        <input type="text" name="first" id="first" value="" placeholder="" required/> 
       </p> 
       <p> 
         <label for="last">Surname</label> 
        <input type="text" name="last" id="last" value="" placeholder="" required/> 
       </p> 

     <p> 
      <label for="mobile">Mobile Number</label> 
      <input type="text" name="mobile" id="mobile" value="" placeholder="" required/> 
     </p> 
     <p> 
      <label for="email">Email Address</label> 
      <input type="text" name="email" id="email" value="" placeholder="" required/> 
     </p> 


     </div> 

       <p class="p-container"> 
       <input type="submit" name="submit" id="submit" value="Submit"> 


       </p> 
     </form> 
    </div> 
      <!-----start-copyright----> 
        <div class="copy-right"> 
         <p> &copy; 2016 <a href="http://spearheaddigital.com.au/">Spearhead Digital</a>. All rights reserved.</p> 
        </div> 
       <!-----//end-copyright----> 
</body> 
</html> 

<?php 
if(isset($_POST['submit']) && !empty($_POST)){ 

$first = $_POST['first']; 
$last = $_POST['last']; 
$mobile = $_POST['mobile']; 
$email = $_POST['email']; 

// Other Code 

} 
+0

這是JS的部分不是PHP的 –

+1

1.使用JavaScript,用戶按下按鈕告訴他們後,某些事情正在發生。 2.您還可以將給定用戶現在正在PHP中運行此函數的信息保存在PHP中,以便您可以檢查它是否再次運行此表單。 – user1234141515134321321513

+0

只需在第一次點擊本身時禁用該按鈕...然後它不會再提交:) – Tal

回答

3

您可以在提交表單時禁用提交按鈕。

使用jQuery的例子:

<script type="text/javascript"> 

    $(document).ready(function() { 
     $('#contactform').submit(function() { 
      $('input[type=submit]', this).prop("disabled", true); 
     }); 
    }); 

</script> 
+0

太棒了。代碼的最佳放置位置在哪裏?在isset線之後? –

+1

我已經更新了我的答案。你必須把這段代碼放在HTML的頭部。請確保你之前包含了jQuery框架。 –

+0

你是一個絕對的傳奇。謝謝。 –