如何使单选按钮返回布尔值真/假而不是开/关
Posted
技术标签:
【中文标题】如何使单选按钮返回布尔值真/假而不是开/关【英文标题】:How to make a radio button return boolean true/false instead of on/off 【发布时间】:2012-12-07 18:37:06 【问题描述】:我希望我的单选按钮返回一个布尔值 true 或 false,而不是开/关
所以我在输入值中传递真/假:
<label>Male
<input type="radio" name="IsMale" value="true" />
</label>
<label>Female
<input type="radio" name="IsMale" value="false" />
</label>
但它以文本格式返回真/假。请高手,我怎样才能以布尔格式获取它们?
更多细节:事实上,我需要将我的 $_POST 数组存储在 file.txt 中,例如,对于我的单选按钮,我需要存储:
array ( "IsMale" => true );
而不是:
array ( "IsMale" => "true" );
【问题讨论】:
【参考方案1】:您必须检查数据并进行修改。
if(isset($_POST['SubmitButton']))
$_POST['IsMale'] = $_POST['IsMale'] == 'true' ? true : false;
【讨论】:
是的,这是唯一的方法。您无法从 POST 数据中获取布尔值。【参考方案2】:您不能让单选按钮或任何其他表单元素直接提交 php 真实值,只能提交诸如“true”之类的字符串。
要解决您的问题,您必须更改 PHP 文件中 $_POST 项的值。
//Form has been submitted
if(isset($_POST['submit']))
//Radio button has been set to "true"
if(isset($_POST['IsMale']) && $_POST['IsMale'] == 'true') $_POST['IsMale'] = TRUE;
//Radio button has been set to "false" or a value was not selected
else $_POST['IsMale'] = FALSE;
编辑: Ben 提供了一个使用三元运算符的功能解决方案,这是一种更短的替代方案。上面的例子可以准确地阐明过程中发生了什么(以更详细的形式)。
【讨论】:
以上是关于如何使单选按钮返回布尔值真/假而不是开/关的主要内容,如果未能解决你的问题,请参考以下文章