使用PHP代码勾选/取消选中HTML复选框

时间:2016-10-14 20:02:36

标签: php html checkbox config

每个人,你好!

我试图在PHP代码的帮助下勾选/取消选中HTML复选框。

如果必须勾选或取消勾选复选框,我会从config.ini文件中获取该选项,如下所示:

的config.ini

[com]
p_ip = x.x.x.x.
p_port = xxx
p_username = xxx
p_password = xxx

[trigger]
string1_enable = no
string2_enable = yes
string3_enable = no

我已经在index.php文件中激活了config.ini文件:

的index.php

<?php $ini = parse_ini_file('config.ini'); ?>

现在,就HTML而言,我已经尝试过这个:

<td><li><input type="checkbox" class="categories-checkbox" name="chk2" id="chk2"<?php if ($ini['string2_enable']=="yes") echo 'checked="yes"';?>><label for="chk2">Enable</label></li></td>

它不会抛出错误,但肯定不会启用。但是,很简单:

<?php $ini = parse_ini_file('config.ini'); ?> 
<?php echo $ini['string2_enable']; ?>

在我的PHP页面上产生了一个yes。

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:2)

  

字符串值&#34; true&#34;,&#34; on&#34;和&#34;是&#34;转换为TRUE。 &#34; false&#34;,&#34; off&#34;,&#34; no&#34;和&#34;无&#34;被认为是假的。

问题

$ini['string2_enable']的值会转换为boolean (true),因此您的if情况将会失败,因为它不再等于yes

解决方案1 ​​

所以你必须用这个替换你的if案例:

if($ini['string2_enable'])

解决方案2

如果出于某种原因,您希望在解析时保留yes值,则可以在函数中添加INI_SCANNER_RAW标记:

$ini = parse_ini_file('config.ini', false, INI_SCANNER_RAW);

使用此选项,您的if案例现在可以正常使用。

来源

有关详细信息:http://php.net/manual/en/function.parse-ini-file.php

答案 1 :(得分:1)

<td><li><input type="checkbox" class="categories-checkbox" name="chk2" id="chk2"<?php if ($ini['string2_enable']=="yes") echo 'checked=true';?>><label for="chk2">Enable</label></li></td>

注意&#34; checked = true&#34;。只是&#34;检查&#34;也会有效。