【问题标题】:PHP - if statment inside echo with checkboxPHP-带有复选框的echo内的if语句
【发布时间】:2016-08-18 09:09:33
【问题描述】:

我需要一些帮助来解决我的问题。我做了几次调查都没有成功。我有一个带有布尔值的 IsContrib 列的表。我想用我的复选框显示此列。如果 IsContrib=1 ==> 选中,否则 IsContrib=0 未选中。

在这里,我是怎么做的,但我收到一条错误消息:syntax error, unexpected ';'

我尝试这样做:

echo "...
<td>&nbsp;<input name='checkboxNContrib[]' type='checkbox' id='checkboxNContrib[]' ".$rowNContribRunDis["IsNContrib"]==TRUE ? "checked='checked'"." value='".$rowNContribRunDis["IdVariantNContrib"]."'/>&nbsp;</td></tr>";

这里是完整的回声:

    while($rowNContribRunDis = mysqli_fetch_assoc($PerformNContribSELECT)){
    $id = $rowNContribRunDis["IdVariantNContrib"];

    echo "<tr>
<td>&nbsp;".$rowNContribRunDis["ID"]."&nbsp;</td><td>&nbsp;".$rowNContribRunDis["Reference"]."&nbsp;</td>
<td><textarea name='ResultHRM[$id]' id='ResultHRM[]' cols='30' rows='1'>".$rowNContribRunDis['ResultHRM']."</textarea></td>
<td><textarea name='Commentaires[$id]' id='Commentaires[]' cols='60' rows='1'>".$rowNContribRunDis['Commentaires']."</textarea></td>
<td>&nbsp;<input name='checkboxNContrib[]' type='checkbox' id='checkboxNContrib[]' ".$rowNContribRunDis["IsNContrib"]==TRUE ? "checked='checked'"." value='".$rowNContribRunDis["IdVariantNContrib"]."'/>&nbsp;</td></tr>";

【问题讨论】:

  • 摆脱混淆标记和逻辑
  • 嗨,兄弟,你能开发更多吗?

标签: php if-statement checkbox echo


【解决方案1】:

添加冒号(:)

".($rowNContribRunDis["IsNContrib"]==TRUE ? "checked='checked'" : "")."

【讨论】:

    【解决方案2】:

    你的代码很丑,你应该重写它! 在字符串连接"" . "" 中使用三元运算符?:,您应该使用括号,例如。 "..." . (true ? "yes" : "no") . "..."truefalse 也使用较低的字符串。

    echo "<tr>
    <td>&nbsp;" . $rowNContribRunDis["ID"] . "&nbsp;</td>
    <td>&nbsp;" . $rowNContribRunDis["Reference"] . "&nbsp;</td>
    <td><textarea name='ResultHRM[$id]' id='ResultHRM[]' cols='30' rows='1'>" . $rowNContribRunDis['ResultHRM'] . "</textarea></td>
    <td><textarea name='Commentaires[$id]' id='Commentaires[]' cols='60' rows='1'>" . $rowNContribRunDis['Commentaires'] . "</textarea></td>
    <td>&nbsp;<input name='checkboxNContrib[]' type='checkbox' id='checkboxNContrib[]' " . ($rowNContribRunDis["IsNContrib"] == true ? "checked='checked'" : "") . " value='" . $rowNContribRunDis["IdVariantNContrib"] . "'/>&nbsp;</td></tr>";
    

    【讨论】:

      【解决方案3】:

      混合 HTML 和 PHP 是个坏主意。

      我看到了问题。问题在于简短的 if 语句,托盘放在括号中示例:

      echo "Lorum ipsum" .($some == true ? 'yes' : '') . "adasda";
      

      而且总是必须是else语句

      【讨论】:

      • 关于 else 的情况并不完全正确,您可以执行 $var1 = $var2 ?: 'Default'; 尽管如果未设置 $var2 会生成通知。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-05-25
      • 2021-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多