【问题标题】:php echo within an echo for a checkbox复选框的回声中的php回显
【发布时间】:2013-07-22 13:52:51
【问题描述】:

我正在尝试使用复选框来显示和更新 MySQL 数据库中的记录。我想根据它是选中还是未选中来更改复选框的值。但是我收到了这个错误:

解析错误:语法错误,意外的 T_ENCAPSED_AND_WHITESPACE,需要 T_STRING 或 T_VARIABLE 或 T_NUM_STRING

这是引发错误的代码行:

echo"<input type='checkbox' name='PLJan' {if (isset($_POST['PLJan'])) print 'value='checked''} $row->PLJan /> January ";

我是否有更好的方法来执行此操作,以便保存它会在选中该框时使用“已选中”更新数据库,如果未选中该框则为空白?

提前感谢您的帮助。

【问题讨论】:

    标签: php html input checkbox echo


    【解决方案1】:
    echo"<input type='checkbox' name='PLJan' {if (isset($_POST['PLJan'])) print 'value='checked''} $row->PLJan /> January ";
    

    应该是

    echo"<input type='checkbox' name='PLJan'"; 
    if (isset($_POST['PLJan'])) { echo " value='checked'"; } 
    echo $row->PLJan . "/> January ";
    

    【讨论】:

    • 谢谢!我不得不把{s 拿出来,但效果很好。仅出于某种原因,它提交“on”作为值而不是“checked”。我不认为文件中的任何地方都有“on”这个词。
    【解决方案2】:

    您的符号完全不正确...最简单的解决方案是将其分解为多个 echo 语句。

    echo "<input type='checkbox' name='PLJan' ";
    if (isset($_POST['PLJan'])){  
            echo  "checked='checked'";
    } 
    echo "value='".$row->PLJan."'/> January ";
    

    这样你就可以使用三元 if 来简化它

    echo "<input type='checkbox' name='PLJan' ";
    echo (isset($_POST['PLJan'])?"checked='checked'":"");
    echo "value='".$row->PLJan."'/> January ";
    

    如果你想把它压缩成一行,你可以将回声连接在一起

    echo "<input type='checkbox' name='PLJan' ".(isset($_POST['PLJan'])?"checked='checked'":"")." value='".$row->PLJan."'/> January ";
    

    【讨论】:

    • 好答案,你能猜到 $row->PLJan 会在 html 标签中间吐出什么
    • @Neeraj 我将假设这是他的价值...更新答案以反映这一点并将先前的 value 属性更改为选中的属性
    • 我将其更改为 echo"&lt;input type='checkbox' name='PLJan'"; if (isset($_POST['PLJan'])) echo 'value="checked"'; echo $row-&gt;PLJan . "/&gt; January "; 并且可以正常工作。它只是向数据库提交“on”而不是“checked”。
    【解决方案3】:

    您不能在字符串的模块中包含 PHP 逻辑。您需要将其分解:

    echo"<input type='checkbox' name='PLJan'";
    if (isset($_POST['PLJan'])) echo ' checked';
    echo " {$row->PLJan} /> January ";
    

    【讨论】:

    • 这个答案本身的格式不正确,第一行需要一个 " 在最后是正确的语法
    【解决方案4】:
    ?>
    <input type='checkbox' name='PLJan' <?php if (isset($_POST['PLJan'])) echo 'checked="checked"'; ?> /> January
    <?php
    

    【讨论】:

      【解决方案5】:

      试试这个

      <?php
      
      echo"<input type='checkbox' name='PLJan'";
      
      if (isset($_POST['PLJan']))
      {
       echo ' checked';
      }
      echo " {$row->PLJan} /> January ";
      ?>
      

      【讨论】:

        猜你喜欢
        • 2016-06-25
        • 2020-12-19
        • 2015-09-19
        • 2013-09-11
        • 1970-01-01
        • 1970-01-01
        • 2016-06-22
        • 1970-01-01
        • 2015-01-18
        相关资源
        最近更新 更多