2015-10-22 41 views
4

我目前正在爲我們公司創建預訂頁面。我想要做的是當用戶點擊立即預約按鈕時,會彈出一個表單供他們完成。在用戶完成表單後,保留按鈕被永久禁用到訪問該網站的每個人。我怎樣才能做到這一點?我不是很熟悉java腳本或PHP。任何幫助將不勝感激。如何在完成表單後永久禁用按鈕?

<div class="container"> 
     <div class="row"> 
     <div class="col-lg-12"> 
      <table class="table table-striped"> 
      <tr> 
       <td>Product</td> 
       <td><a href="#" class="btn btn-primary ">RESERVE NOW</a></td> 
      </tr> 
      </table> 
      <form> 
      First name:<br> 
      <input type="text" name="firstname" value="Mickey"> 
      <br> 
      Last name:<br> 
      <input type="text" name="lastname" value="Mouse"> 
      <br><br> 
      <input type="submit" value="Submit"> 
      </form> 
     </div> 
    </div> 
    </div> 

我已經嘲笑了,可以在這裏找到了一個例子:
https://jsfiddle.net/rman215/gw2m53w9/1/

+1

被禁用的屬性:'' –

+1

您需要在數據庫中設置一個值來跟蹤已經使用的預留。 – Rasclatt

+0

如果保留現在引用特定項目/產品,則需要將狀態存儲在數據庫中。當用戶保留該項目時,通過將該項目更改爲保留狀態來更新該項目的數據庫。該按鈕僅在項目狀態爲空閒/未保留時纔可用。 –

回答

0

如果我理解你,你要提供能力TI儲備的東西,但只有1對人,對不對?

因此,您可以在數據庫中存儲標誌(例如,在disabled_at [timestamp,default = null]列中)。當有人點擊按鈕並呼叫處理頁面(通過ajax或簡單重定向)設置標誌disabled_atNOW()。每次處理頁面是disabled_at IS NULL。如果是 - 將首字母和姓氏保存到數據庫。

在與表單頁面需要添加屬性disabled提交按鈕,如果disabled_at IS NOT NULL

編輯:

disable.php

<?php 

function reserveItem($name = null, $value = null) 
{ 
    $name .= '.reserved'; 
    $value = $value ? $value : 1; 
    return file_put_contents($name, $value); 
} 

function isDisabled($name = null) 
{ 
    return file_exists($name . '.reserved'); 
} 

$disabled = isDisabled('item1'); 

if (isset($_POST['submit'])) { 
    $name = isset($_POST['firstname']) ? $_POST['firstname'] : ''; 
    $lastName = isset($_POST['lastname']) ? $_POST['lastname'] : ''; 
    if (!$disabled) { 
     reserveItem('item1', $name . $lastName); 
    } 
} 

?> 

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="utf-8"> 
</head> 
<body> 
    <div class="container"> 
     <div class="row"> 
     <div class="col-lg-12"> 
      <table class="table table-striped"> 
      <tr> 
       <td>Product</td> 
       <td><a href="#" class="btn btn-primary ">RESERVE NOW</a></td> 
      </tr> 
      </table> 
      <form method="post" action="disable.php"> 
      First name:<br> 
      <input type="text" name="firstname" value="Mickey"> 
      <br> 
      Last name:<br> 
      <input type="text" name="lastname" value="Mouse"> 
      <br><br> 
      <input type="submit" value="Submit" <?= $disabled ? 'disabled' : ''; ?>> 
      </form> 
     </div> 
    </div> 
    </div> 
</body> 
</html> 

注:編寫的代碼編輯器只有和未經過測試。

+0

我沒有連接到該站點的數據庫。這可以在沒有使用數據庫的情況下完成嗎?如果沒有,你有沒有建議將數據庫綁定到我的工作站點。我在iPage上託管,我不知道他們是否支持數據庫。 – rman215

+0

你可以在文件中存儲'disabled flag'值。邏輯相同,例如,當有人預訂時可以創建文件「item_name.reserved」。在處理頁面上,您將檢查文件是否存在(如果不存在 - 可用於預留)。 – Stafox

+0

你要做的事情需要在數據庫中持久化,你必須訪問你的主機控制面板。您的主機支持MySql數據庫,具體取決於提供的控制面板,可能有一個使用PHPMyAdmin來管理數據庫的選項。您可以查看託管提供的文檔。 –

0

給予ID提交按鈕上點擊提交調用這個函數

function disableButton() { 
    $("#idOfButton").attr("disabled","disabled") 
} 
0

表格提交後,你會得到成功響應。如果你正在使用AJAX來提交表單,那麼你需要做的

: 假設立即預訂按鈕 ID:獲得成功後,使用此代碼只是禁用立即預訂按鈕 reserve_btn_id

$.ajax({ 
    // your code.... 
}).done(function() { 
    $("#reserve_btn_id").attr("disabled","disabled"); 
}); 
0

由於每次客戶端加載頁面時都會執行JavaScript,因此無法插入JavaScript代碼來阻止按鈕。 我建議你用一個簡單的MySQL數據庫,是這樣的:

CREATE TABLE Items(
    ItemID INTEGER AUTO_INCREMENT PRIMARY KEY, 
    Description VARCHAR(255), 
    IsReserved TINYINT(1) //this works like a boolean   
); 

這樣你的網頁將有選擇的所有項目中,這樣的事情:

SELECT * FROM Items ORDER BY ItemID

,然後你會用類似這樣的東西打印它們:

$server = "localhost"; 
$username = "root"; 
$password = "root"; 
$database = "mydatabase"; 
$connection = mysqli_connect($server, $username, $password, $database); 

$result = mysqli_query($connection, "SELECT * FROM Items ORDER BY ItemID"); 

if (mysqli_num_rows($result) > 0){ 
    echo("<form action=\"mypage.php\" method=\"post\">"); 
    while($row = $result->fetch_assoc()){ 
     echo("input name=\"id\" type=\"hidden\" value=" . $row['ItemID'] . ">"); //this input type hidden isn't shown on the page but we use it to store the id of the item so that we can retrieve it on the PHP page on submit 
     echo("ID: " . $row['ItemID']); 
     echo("Description: " . $row['Description']); 
     if ($row['IsReserved'] == 1){ 
     echo("<button class=\"mybutton\" type=\"submit\" disabled>Reserve</button>"); 
     } 
     else{ 
     echo("<button class=\"mybutton\" type=\"submit\">Reserve</button>"); 
     } 
    } 
    echo("</form>"); 
} 
else{ 
    echo("No data"); 
} 

然後爲了更新保留的項目的狀態,ju ST更新當表單已提交給其他PHP頁面的狀態,你就會有這樣的事情:

​​

所以這是它,基本上,我希望它可以幫助您與您的項目:)

我給你留下this guide關於如何使用PHP處理表格&他們的數據。