2012-09-11 61 views
0

我在我的數據庫中存儲汽車的表。然後在我的系統中,數據庫中有汽車的下拉列表(下拉菜單:汽車A,汽車B,汽車C)。比方說,如果用戶A選擇車B,車B將不再可供其他用戶在登錄時選擇。我的問題是,如何讓汽車無法再被選中?有什麼我可以參考的頁面?如何在選擇後刪除下拉列表中的元素?如果你不明白我的意思,請隨時問我。提前致謝。選擇後刪除下拉列表中的元素

+0

但是,該車不會從數據庫中刪除,對嗎?這個選擇的意義是什麼?這是「我的車」還是「我租用的汽車」? –

+0

你可能想看看使用應用程序狀態http://msdn.microsoft.com/en-za/library/ms178594(v=vs.100).aspx作爲選項 –

+0

@AndreCalil:汽車正在出租 –

回答

0

我認爲在數據庫中,您可以維護包含布爾值的Isselected字段。如果用戶選擇值爲true的汽車更新數據庫。當加載下拉菜單中選擇 Isselected = false

0

我會做的是使用ajax來控制可用的汽車列表。當用戶選擇汽車時,可以「推送」信息。

該流程是這樣的:

  1. 用戶A選擇了「日產Altima的」
  2. 通過Ajax的信息被髮送到服務器
  3. 服務器存儲的相關用戶A和B之間「日產Altima的」
  4. 服務器「推送」的信息向用戶B
  5. 用戶B的屏幕更新和更新列表

您可以使用Comet從一個用戶到另一個用戶完成ajax「推送」。

0

你的數據庫表應該有一個名爲IsReserved(或類似的東西),那麼你的下降downlist將與查詢填充字段:

SELECT * FROM Car Where IsReserved=0 
0

我建議你再創建一個臨時表,你可以保存sessionID沿CarIDCarCode當用戶從下拉選擇車上下來對這個事件(您可以選擇火災事件中的項目)

保存carID &的SessionID在臨時表

表結構

CarTempTable 
    CarID xxx 
    SessionID varchar(x) 
    Date datetime 

,一旦你在這個表中有CarID &的SessionID,那麼你可以查詢你的其他用戶的主表像

012查詢
SELECT CarID, CarName FROM Cars WHERE CarID NOT IN (SELECT CarID FROM CarTempTable WHERE SessionID <> "'+ SessionIDofUSER+'"; 

在上述方法中,您必須確保在會話結束時清除特定會話的臨時表條目。

這種方法應該爲你

編輯工作:如果是汽車租賃,然後這是好事,對你的表一個額外的列,其表示,如果車是可用的基礎上,如果用戶的書車上。您可以將此與上述臨時表一起使用,因爲我不確定您是通過付款還是通過其他方式進行預訂。

相關問題