2012-01-03 68 views
1

這僅僅是一個即彈出沒有從我的腦海裏,其中的問題,Asp.net下拉列表中選擇值如何PHP實現這一

PHP沒有視圖狀態,但那些傢伙怎麼得到期間postback/POST保存country id如果下拉列表綁定到數據源下面

CountryId CountryName 
1    USA 
2    INDIA 
3   .... 

假設顯示的文本是國家或地區名稱。

在ASP.NET回發過程中,下拉列表選定值從視圖狀態加載,因爲在數據綁定期間將數據源保存到viewstate中。

  • 如何PHP真正實現這種效果

  • 如果後期(校驗等)過程中發生了錯誤,asp.net再次加載從視圖狀態下拉值,所以做PHP傢伙請求DB再次爲國家或從緩存中加載它。

注:這只是一個簡單的例子,其中預測的答案可以給予,我期待更多的心胸寬闊的答案想想DROPDOWNLIST可以容納其他東西。

回答

1

在PHP中,任何/所有可變形式元素的當前值將被髮回到服務器,並將出現在$_POST全局中。

UPDATE:一個例子:

<input type="text" name="my_text" value="some_value" ?> 
<select name="my_select"> 
    <option value="option1"/>Option 1</option> 
    <option value="option2" SELECTED/>Option 2</option> 
</select> 

在這種情況下,服務器將獲得:

$_POST['my_text'] = 'some_value'; 
$_POST['my_select'] = 'option2'; 

按確認:除非你使用框架,介紹驗證,PHP不知道區別。如果您想確保您的選擇值確實是有效的,則需要手動對照已知值的列表對其進行雙重檢查。

再次 - 有框架引入了許多其他方面的驗證幫助。雖然下面的概念是相同的:生成一個列表,從中創建一個選擇,再次生成列表並確保POST列表中的值確實在列表中。

+0

這是否意味着當'美國被選中'時你會得到'ID = 1''。你有沒有想過PHP是如何做到的? – Deeptechtons 2012-01-03 06:39:27

+0

已更新的答案。 – Mbrevda 2012-01-03 06:49:24

+0

問題一解決了(PHP完全依賴無狀態的HTTP,很好),問題2驗證失敗後會發生什麼(惡意用戶通過javascript添加了另一個「選項」選項),您將如何驗證該問題。 – Deeptechtons 2012-01-03 06:54:08

相關問題