【发布时间】:2011-10-28 10:18:14
【问题描述】:
我有一堆来自复选框的布尔值。我想做的是如果它们是 1 则将它们设置为 yes,如果它们是 0 则将它们设置为 no。
我的代码失败了,我觉得还可以吗?
$item = $form_state['values']['item1'] == 1 ? 'Yes' : 'No';
【问题讨论】:
我有一堆来自复选框的布尔值。我想做的是如果它们是 1 则将它们设置为 yes,如果它们是 0 则将它们设置为 no。
我的代码失败了,我觉得还可以吗?
$item = $form_state['values']['item1'] == 1 ? 'Yes' : 'No';
【问题讨论】:
如果你的复选框的value属性等于1,应该没问题:
<input ... type="checkbox" value="1" />
如果您没有设置这些值,或者在所有情况下您可以检查它们是否存在于$_GET 或$_POST 数组中(假设$form_state 是从那里获取的):
$item = isset($form_state['values']['item1']) ? 'Yes' : 'No';
上面的例子应该适合你。请记住,如果没有选中单选按钮和复选框,则不会在 $_GET 或 $_POST 中设置它们,这也可能会生成 Notice 或 Warning ,如果尝试访问不存在的索引。
在旧版本的 php 中,您可能需要使用 $_REQUEST。
【讨论】: