2015-07-02 100 views
2

我要的是第二組選項更改爲一旦選擇了一個名字任何可用的基於date=today and name=selectedname表 - 基於第一選擇與MySQL查詢更新選項

下面是表的基礎知識:

ID | name | location | Date 
1 |John | place 1 | 03-07-2015 
2 |Jane | place 2 | 03-07-2015 
3 |John | place 2 | 04-07-2015 
4 |Jane | place 2 | 04-07-2015 

我只是不知道如何基於運行SQL語句

SELECT location FROM table WHERE name = "selected name" AND date = CURDATE()時選擇 「姓名」 改變

這裏是我當前的代碼示例:

<form name="test" id="test"> 
 
    <div> 
 
    <label for="name">Name:</label> 
 
    <select name="name" id="name" required> 
 
     <option value="" disabled selected>Please Select</option> 
 
     <option value="John">John</option> 
 
     <option value="Jane">Jane</option> 
 
    </select> 
 
    </div> 
 
    <div> 
 
    <label for="location">location:</label> 
 
    <select name="location" id="location" required> 
 
     <option value="" disabled selected>Please Select</option> 
 
     <option value="place 1">place 1</option> 
 
     <option value="place 2">place 2</option> 
 
    </select> 
 
    </div> 
 
    <div> 
 
    <label for="startend">Start or Finish:</label> 
 
    <select name="startend" id="startend" required> 
 
     <option value="" disabled selected>Please Select</option> 
 
     <option value="Start">Start</option> 
 
     <option value="End">Finish</option> 
 
    </select> 
 
    </div> 
 
    <div class="submit"> 
 
    <input type="submit" name="submit" value="Submit" class="submit" /> 
 
    </div> 
 
</form>

所以一旦約翰從名稱選擇選擇「約翰」的位置選擇框將只包含「地點1」,如果今天的日期是03 -07-2015,但如果今天的日期是04-07-2015,那麼它只包含'Place 2'

+1

名稱是重複的。仍然有可能。創建一個選項框,其中選項是'name',值是'ID'。然後在表單提交你會得到該ID,然後你可以輕鬆更新。 –

+0

如果我理解正確,所以如果選擇一個名稱,然後更新第二個選定的值的所有行? –

+0

約翰和約翰是一樣的人簡 - ID只是那裏的主要列,所以基本上,如果約翰今天被選中位置只會顯示'地點1',但如果他選擇他的名字湯羅洛它會顯示'地點2' – RedSparr0w

回答

1

如果你想選擇約翰今天的位置,你只需要選擇基於namedate像這樣:

SELECT location 
FROM table 
WHERE name = "John" 
    AND date = CURDATE() 

如果要在選擇名稱後即時更新第二個選擇框,則可能需要使用ajax。如何填充一個Ajax調用一個選擇框Here are some good examples,調用代碼namelocation領域的東西,如改變:

$("#name, #location").change(function(){ 
    $.ajax({ 
     url: "fetchData.php", 
     data: $('form').serialize(), 
     dataType: "json", 
     success: function(data) { 
      alert("Next we populate the <select> with the data received..."); 
     } 
    }); 
}); 

fetchDate.php文件是你需要創建。這個PHP文件將簡單地抓取正確的位置(使用上面的SQL示例)並以JSON格式將它們回顯出來供JS使用(使用json_encode()函數將PHP數組轉換爲JSON)。

您還可以使用專用的names表格,只需在此處引用John的名字ID,否則在用戶需要更改名稱或多個用戶具有相同名稱時會遇到問題。

+0

謝謝,SQL語句部分沒有太多的問題,主要是當名稱更改時如何運行它,有沒有辦法用JQuery來做到這一點,因爲我知道一點點,但我對Ajax一無所知 – RedSparr0w

+0

我有一個表名和用戶名和電子郵件/密碼等我如何參考2在一起? – RedSparr0w

+1

@ RedSparr0w你會想要使用'內部連接',這裏是[一個入門](http://www.w3schools.com/sql/sql_join_inner.asp)關於如何使用它和[官方文檔](https ://dev.mysql.com/doc/refman/5.0/en/join.html)。 – Andrew

0

試試這個

SELECT location 
FROM table 
WHERE name = "John" 
    AND date = "03-07-2015" 
相關問題