使用Codeigniter 3。set_checkbox对我来说很好用,只是我不能选中默认值。
我已经尝试了其他帖子中的建议,但我仍然不能让它工作...
对于调试,我将其归结为以下内容...
<input type="checkbox" name="xyz" value="1" <?php echo set_checkbox( "xyz", "1", TRUE ) ?> XYZ
和
<input type="checkbox" name="xyz" value="1" <?php echo set_checkbox( "xyz", "1", 1 ) ?> XYZ
对我来说都不管用有什么建议吗
4条答案
按热度按时间hkmswyz61#
举个例子,对于一个你可能正在创建或更新内容的页面(在这个例子中是$obj),我这样做:
这个$obj是数据库中的一个东西,所以如果我在创建或更新$obj,这对我很有效。
我不知道这是不是你想要的,但我每天都用这个。
1hdlvixo2#
我在回答这个问题的时候会先声明我不是PHPMaven,也不能推测出原作者的意图。如果你不介意的话,请继续阅读:)...
按照Brian的建议,我查看了set_checkbox代码,发现如下所示。
答:Codeigniter 3有这个函数的两个副本,一个在system/libraries/Form_Validation. php中,另一个在system/helpers/form_helper. php中。
B:form_helper. php中的那个包含了我猜是bug的东西。
我将详细说明B:set_checkbox的最后一行说
不幸的是,它从来没有得到那么远。就在这句话之前是这样的...
在我的例子中,if语句是真的,但是“$input === $value”从来都不是真的,所以我总是得到一个"“的返回。我把它改为...
现在一切都按预期工作。
为了清楚起见,我并不是建议任何人修改Codeigniter源代码,我只是简单地展示了对我有用的东西。
谢谢你抽出时间来帮我。
干杯丹尼斯
yqhsw0fo3#
是的,我有这个问题,首先是谁的地狱希望一个复选框被选中的默认情况下,当你想取消选中它应该保持未选中,如果提交表单和错误来。
我用我刚想出的一个窍门解决了这个问题。
我基本上检查了表单是否已提交,以及设置值是否如下设置
eulz3vhy4#
我知道这个问题很久以前就有人问过了,但看这里给出的答案似乎很复杂。我将在下面回答这个问题:
诀窍在于将第三个参数设置为
false
。这很有效。任何人都可以尝试这个并给予反馈。