2017-02-21 91 views
1

我想創建一個網頁,從MYSQL數據庫調用,呈現檢索到的信息,然後以幾種方式處理。什麼是我現場處理和更新的最佳方法?

一旦輸入一個唯一的數字,我就提出相關的細節,這裏的例子是;

Order Number | Item 


---------- 
1234     B111 
1234     C333 
1234     D999 

在此之後,我想輸入(更具體地,掃描條碼)每個「項目」的手動,證實它們已被人工檢查。

一旦完成,並且所有3個項目都已正確匹配,我想提交頁面並將2個字段追加到數據庫(這部分是沒有問題的)。但是我不希望這樣做是可能的,直到每個項目都被檢查完畢爲止,所以在確認正確之前不會對數據庫進行交付。此外,如果掃描的內容不在此範圍內,則會顯示警報。

有沒有人能夠指出我在正確的方向上做到這一點的最佳方式?我不是一個完整的解決方案之後,而是完成這個最好方法的一個總體方向。

+0

如果我理解正確,您的整個流程基於保持打開數據庫連接並等待幾秒或幾分鐘的事務,同時人工操作員一個一個仔細處理項目。這在桌面應用程序中可行,但在網站中基本上不可能(或者至少非常困難),因爲HTTP是無狀態協議。 –

回答

1

如果我理解正確,你正在嘗試做以下,在不同的步驟:

  • 第1步查找並打開一個訂單。
  • 步驟2a掃描商品
  • 步驟2b Haveit擡頭,顯示
  • 步驟2c顯示這一行爲是否制定並顯示反饋
  • 步驟2d查看是否有更多的產品
    • 如果是的,回到步驟2a
    • 如果沒有,則轉到步驟3
  • 第3步提交的數據,並將它在巴克處理第二

而且你問的處理步驟整個2

我能拿出2種方式的好辦法:

服務器片面

做一些額外的桌子舉行'會議'。 你的會議在這​​裏是所有的3個步驟。

ScanSessionHeader ScanSessionLine

例如

當您掃描的順序,你做出了改變日期時間標題記錄,並使其保持打開狀態。

只要記錄處於這個「開放」狀態。您可以在網頁上顯示此信息,並且可以繼續顯示下一個掃描字段。

當您向後端提交產品線時,請將產品條碼保存在ScanSessionLine中,並將其保存爲驗證狀態。

您可以在網頁上顯示此信息。

當需要提交整個東西時,請關閉標題,以便它不能再用於添加更多行。

如果所有行均正確驗證,則您一次處理它們全部。

您可以通過將所有內容都存儲在SESSION變量中來做同樣的事情,但是當服務器重新啓動時整個掃描會話將會丟失。

這可以通過顯示任何打開的掃描會話時沒有活動綁定到此會話來防止。 (通過在會話中持有ScanSessionHeader.ID),以便在服務器重新啓動(或重新啓動Apache)後繼續。與異步服務器

客戶端調用

順序檢索得到後,你打開一個形式的產品條碼領域。

你可以從服務器端做到這一點,但我會從一開始就用JavaScript開始。

只要東西在字段中輸入,你做一個AJAX調用: https://www.w3schools.com/xml/ajax_intro.asp

這在後臺加載一個網頁,與參數和使用此電話來驗證碼後,可以設置產品線的狀態。

掃描的每一件產品都可以顯示一個新的產品系列,因此您可以添加更多產品。

只要所有行都被驗證爲正確,您就會一直顯示整個表單的提交按鈕。

但是,只要重新加載頁面,所有數據都會丟失。 例如,Javascript錯誤阻止您進一步完成表單,以便用戶重新加載。

你選擇什麼樣的路徑取決於你的使用情況:

如果你想用各種方法來保存掃描的狀態,與第一個去,並保存在數據庫中的一個安全的解決方案。只要確保實施一種扔掉舊/失速掃描會話的方式。

如果您需要更多速度,並且不想等待整頁重新加載,並希望它看起來更加花哨和活潑。使用異步服務器調用,並使用JavaScript完成所有魔術。

您仍然可以將整個會話保存在數據庫中,但需要更多的代碼才能將會話還原到用戶正在查看的網頁。

或者如果你想要一個非常快速和骯髒的解決方案。將驗證所需的所有數據傳遞到網頁,並讓Javascript處理所有事情。

寫下一些要求,我可以建議什麼路徑可以爲你工作。

+0

正是我需要的!謝謝,這是完美的 –

相關問題