【问题标题】:How to make an HTML element readonly based on PHP value如何根据 PHP 值使 HTML 元素只读
【发布时间】:2017-07-08 03:23:05
【问题描述】:

我有这个代码:

<input type = "text" value = "$va" name = "n"/>

如果 va 不是空格,我希望它是只读的。我怎样才能做到这一点?

【问题讨论】:

    标签: javascript php html forms whitespace


    【解决方案1】:

    这应该使得如果$va 包含空格,该字段将是只读的。

    <?php
    
    $readonly = (!empty($va) && strlen(trim($va)) == 0) ? null : 'readonly';
    echo '<input type="text" value="'.$va.'" name = "n" '.$readonly.' />';
    

    但是我不确定您是否还想包含一个空字符串作为“仅包含空格”,在这种情况下您可以将第一行更改为:

    $readonly = (strlen(trim($va)) == 0) ? null : 'readonly';
    

    【讨论】:

      【解决方案2】:

      Java 脚本的第一个选项

      在javascript中你可以这样做:

      第一个:为你的元素添加一个 id

      <input type = "text" value = "$va" name = "n" id='n'/> //i just made it the same as the name
      

      2nd:获取id为'n'的元素

      <script>
      $(document).ready(function(){
          var nValue = $("#n").val();
          if( nValue != " " ) {
              $("#n").prop("readonly",true);
          }
      });
      </script>
      

      PHP 的第二个选项

      在 php 中,假设您通过 php 打印元素:

      //other codes here
      <?php $va = "noAWhiteSpace"; 
      $readOnly = "";
      if($va != ""){
          $readOnly = "readonly";
      }
      ?>
      <input type = "text" value = "<?php echo $va; ?>" name = "n" <?php echo $readOnly;  ?> />;
      

      【讨论】:

      • 你的 PHP 出了问题。检查语法错误。
      • 单引号中的$va。也可能不是" "。它可能是较长的空格字符串,或者包含制表符或换行符,所有这些都被视为空格。
      【解决方案3】:

      这里是

      <input type = "text" value = "$va" name = "n" <?= ($va != '' || $va == null) ? '' : 'readonly'; ?>/>
      

      查看https://www.php.net/manual/en/control-structures.if.php

      【讨论】:

        猜你喜欢
        • 2021-06-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-05
        • 2015-01-12
        相关资源
        最近更新 更多