2012-01-03 70 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

相关问题