2012-09-27 80 views
0

我已經無情地搜索了這個,我無法找到我的窘境 - 我想問題是我並不確定要搜索什麼!總之,我的問題是這樣的......基於表單選項生成輸出

場景: 想象一下,有一個數據庫,爲了討論各種情形,食譜,你想給用戶產生的基於各種標準配方建議列表的能力。

以網頁的形式,我希望這是左邊的一系列下拉框。用戶將從下拉框中選擇他們的過濾器選項,並在按下提交按鈕後,將呈現符合標準的配方列表。

因此,他們可以選擇'膳食類型','卡路里','烹飪時間',然後(在提交後)找回符合條例草案的食譜建議清單。

(理想情況下,他們似乎無需重新加載頁面,將包含一個滑塊內瀏覽,但我可能能破解這一部分,如果我得到的基本部分來分類...)

要求: 我只需要知道 - 在頂層 - 我將使用哪些技術來實現這一點(以及它們如何協同工作的過程)。

我在猜測我需要一個帶有標準標籤的食譜的MySQL dB,然後使用表單和php從數據庫中提取。它是否正確?!

好像這樣一個共同的要求,但我可以找到關於如何實現這一目標沒有良好的閱讀..

+0

你只需要你加了標籤的技術......,這一切我只能說真的,這個問題的剩下的只是打開方式。 – Erik

+0

您需要爲收件人定義數據庫結構,如果您設置正確,過濾將非常簡單。 – jeroen

回答

1

查看準備好的語句的PHP指南。您將基本上針對數據所在的表編寫select語句,select語句的where子句是用戶在表單中選擇的參數。

PHP Prepared Statements

你要堅持到準備好的語句的原因是,他們一般都反對用通過表單您的網站,利用SQL注入攻擊更加安全。

對於端對端的解決方案,您的前端將提交給一個PHP頁面,然後將處理由用戶指定的標準,翻譯成那些準備好的聲明,將從您的表中找到數據。表格本身需要有符合標準的列。這更多地涉及到數據庫設計,這是一個更大的話題來覆蓋這裏,但有很多指南在那裏。

真的想要將解決方案分解成子組件,然後找到各種指南來解決這些問題。祝你好運,希望這會有幫助。 :)

+0

謝謝!您提供的鏈接上的選項#3,對嗎?用準備提取數據 –

+0

是的,就是那個。還有其他的導遊圍繞這種事情,這是值得的概念讀了。這也是非常方便的,因爲你不必擔心打交道的人提交的內容與它的報價等製備的報表將有助於處理這一切。 – Winterblink

0

的過程:

1)用戶,使選擇和點擊提交按鈕。這將啓動一個HTTP POST到一個PHP頁面(可以是相同的PHP頁面),您將在這裏收集這些信息。

2)用PHP打開MySql數據庫連接。你需要知道SQL從MySql DB中獲取數據。取決於數據庫模式的佈局方式。

3)一旦你拉這個信息顯示他們作爲一個複選框,用戶可以點擊。

這是最低限度。

如果你想得到更多的花式,你可以使用jQuery ajax post(http://api.jquery.com/jQuery.post/),這樣頁面就不會刷新。

祝你好運,我已經餓了。哈哈。

+0

您需要'GET'來檢索數據,而不是'POST'。 – moonwave99

+0

你也可以使用。當腳本處理POST時,它會返回一個文檔作爲結果顯示。 – Barmar

+0

感謝您的迴應!有道理,我認爲我在正確的軌道上... –

0

當用戶選擇表單中的選項並提交它時,這將在服務器上運行PHP腳本。服務器檢索選項參數,並使用它們構造SQL查詢。例如,腳本可能包含如下內容:

$criteria = array(); 
if (isset($_POST['calories'])) { 
    $criteria[] = 'calories < '.$_POST['calories']); 
} 
if (isset($_POST['time'])) { 
    $criteria[] = 'cooking_time < '.$_POST['time']); 
} 
... 
$query = 'SELECT * FROM recipes WHERE '.implode(' AND ', $criteria); 

您使用類似mysqli或PDO的庫來執行查詢並獲取結果。然後循環瀏覽結果,並將它們格式化爲HTML表格,然後將其作爲生成的網頁返回給用戶。

或者PHP腳本可以將結果作爲JSON數據返回。您的網頁可以使用AJAX從服務器獲取這些數據,然後使用JavaScript將其格式化爲表格。