【问题标题】:Set a checkbox as 'checked' when an if condition is fulfilled in php当在 php 中满足 if 条件时,将复选框设置为“已选中”
【发布时间】:2019-04-02 20:45:57
【问题描述】:

我想在满足 if 条件时自动将复选框标记为“已选中”。这是 if 条件的示例-

if($wp_session['tdwa_verification_checks'] < 2){

}

而复选框是-

<input class="input-text a-save" type="checkbox" id="chkboxclicked" name="tdwa-foreign-citizen" value="1">

我正在尝试这个,但它不起作用。

if($wp_session['tdwa_verification_checks'] < 2){

    echo '<input class="input-text a-save" type="checkbox" id="chkboxclicked" name="tdwa-foreign-citizen" value="1" checked>'; 

}

如果有人能给我一个线索,我将不胜感激。谢谢:)

【问题讨论】:

  • 能否提供完整的 PHP 代码?
  • 嗯,其实我正在开发一个现有的 WordPress 插件,代码太长了。
  • 明白了……你说它“不工作”,到底发生了什么?您是否看到复选框,但它没有被选中?您根本没有看到复选框吗?
  • var_dump($wp_session['tdwa_verification_checks']); 输出什么?
  • 我可以看到复选框,但它没有被选中。如果条件正确与否,我对我在内部编码的方式感到困惑!

标签: php wordpress checkbox


【解决方案1】:

几个问题。一个是您将整个复选框包装在 if 语句中。另一个是通过将布尔值与less than 2 进行比较来检查布尔值是非常奇怪的,因为您通常会将其与等于1 进行比较。另一个是chkboxclicked 是一个非常模糊的 ID,至少可以说,您应该将其更改为更类似于名称的名称。您还应该添加右斜杠,因为复选框输入是无效元素。

现在,查看您的代码,您也在检查$wp_session['tdwa_verification_checks'],但输入名称是tdwa-foreign-citizen,您确定您在$wp_session 中检查的密钥是正确的吗?

最后,WordPress 有一个名为checked() 的简洁函数,如果适用,它将为您比较和检查值。这就是您可能应该在标记中使用它的方式:

<input class="input-text a-save" type="checkbox" id="tdwa-foreign-citizen" name="tdwa-foreign-citizen" value="1" <?php checked( $wp_session['tdwa_verification_checks'], 1 ); ?> />

【讨论】:

    【解决方案2】:

    您正在正确打印复选框,您必须验证为

    $wp_session['tdwa_verification_checks']
    

    你可以通过这样做找到价值

    echo json_encode($wp_session['tdwa_verification_checks']);
    

    一旦找到可以正确比较的值

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-07-10
      • 2013-11-14
      • 1970-01-01
      • 2018-01-27
      • 2014-09-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多