11

我希望我的单选按钮返回一个布尔值 true 或 false instade of on/off

所以我在输入值中传递真/假:

<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" );
4

2 回答 2

20

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

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

  $_POST['IsMale'] = $_POST['IsMale'] == 'true' ? true : false;
}
于 2012-12-20T09:25:56.220 回答
3

您不能使单选按钮或任何其他表单元素直接提交 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 提供了一个使用三元运算符的功能解决方案,这是一种更短的替代方案。上面的例子可以准确地阐明过程中发生的事情(以更详细的形式)。

于 2012-12-20T09:29:26.717 回答