基本的PHP / MVC变量问题

时间:2012-12-18 00:55:50

标签: php flourishlib

非常初学者,请放轻松:)

在我们的数据库中,我们有一个tinyint字段secondary_phone_number,其值为01。我们使用flourish MVC

0 =假,1 =真。

我正在尝试使用以下代码显示一个复选框,指示secondary_phone_number是否为真:

if ($company->setSecondaryPhoneNumber(fRequest::get("secondary_phone_number")) == TRUE) 
{
      $company->setSecondaryPhoneNumber == TRUE;
} else {
      $company->setSecondaryPhoneNumber == FALSE;
}   

然后,显示:

$data['secondaryphonenumber'] = $company->getSecondaryPhoneNumber();

最后,使用:

在.tpl中呈现它
<h5>Enable Secondary phone numbers?</h5>
<label>
    <input type="checkbox" name="secondary_phone_number" value="0" {{^secondaryphonenumber}}checked="checked"{{/secondaryphonenumber}}/>
    Yes
</label><br>

问题是,它总是显示为已检查....即使数据库中的值为0 ...这个新的任何帮助??? !!

2 个答案:

答案 0 :(得分:2)

正如Ross在评论中指出的那样,您的错误出现在您的作业中(您使用条件==代替作业=):

if ($company->setSecondaryPhoneNumber(fRequest::get("secondary_phone_number")) == TRUE) 
{
      $company->setSecondaryPhoneNumber = TRUE;
} else {
      $company->setSecondaryPhoneNumber = FALSE;
}

答案 1 :(得分:0)

这是一个HTML问题。当您添加checked="checked"时,该复选框将始终显示为已选中 我自己就试过了。没有该行,复选框仍然可以正常工作。我不确定你的框架是如何处理的,所以我不确定如何动态地从数据库中为这个框分配值,但是应该可以通过在value属性中回显一个语句来赋值。你的支票输入标签。

如果您想了解更多细节,请查看此链接: http://www.w3schools.com/jsref/dom_obj_checkbox.asp