如何使单选按钮返回布尔值true / false而不是on / off

时间:2012-12-20 09:23:22

标签: php arrays radio-button

我希望我的单选按钮返回一个布尔值true或false开启/关闭

所以我在输入值中传递了true / false:

<label>Male
   <input type="radio" name="IsMale" value="true" />
</label> 
<label>Female
   <input type="radio" name="IsMale" value="false" />
</label>

但它以文本格式返回true / false。请掌握我如何以booleen格式获取它们?

更多细节:实际上我需要将我的$ _POST数组存储在file.txt中,而对于我的单选按钮,我需要存储例如:

array ( "IsMale" => true );

而不是:

array ( "IsMale" => "true" );

2 个答案:

答案 0 :(得分:18)

您必须检查数据并对其进行修改。

if(isset($_POST['SubmitButton'])) { 

  $_POST['IsMale'] = $_POST['IsMale'] == 'true' ? true : false;
}

答案 1 :(得分:3)

您无法使单选按钮或任何其他表单元素直接提交PHP true值,只能提供一个字符串,例如“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提供了使用三元运算符的功能解决方案,这是一种较短的选择。上面的例子可以准确地澄清过程中发生了什么(以更详细的形式)。