【问题标题】:Echoing HTML in php在 php 中回显 HTML
【发布时间】:2011-06-30 12:16:52
【问题描述】:

您好,我想回显 HTML 以便将 mysql 中的变量放入 HTML 输入标记中。特别是,我遇到问题的单选按钮,它说它需要逗号或分号。这是我的代码:

$result=mysql_query($sql);
$row = mysql_fetch_assoc($result);
 while($row = mysql_fetch_array($result)){
  echo "<input type="radio";
  echo "value=";
  echo "$row["cnumber"]";
      echo "/>";
      echo "$row["cname"]"; 
  echo "<br />";

知道为什么这不起作用吗?

【问题讨论】:

  • 抱歉代码状态。由于某些原因,四行的东西不起作用。

标签: php mysql html input radio-button


【解决方案1】:
$result=mysql_query($sql);
$row = mysql_fetch_assoc($result);
    while($row = mysql_fetch_array($result)){ ?>
       <input name="test" type="radio" value="<?php echo $row['cnumber']; ?>" /><?php echo $row['cname']; ?><br />
<?php } ?>

提示:如果你想将 html 转换为 php,只需复制你的 html 代码,然后粘贴到记事本中。因此,您调用命令 replace 并将“更改为 \”。

【讨论】:

    【解决方案2】:

    你不能这样使用回声:

     echo "$row["cname"]";
    

    数组索引中的双引号被解释为字符串的结尾!

    Hwr,如果您只回显一个变量,则不需要引号!

    echo $row["cname"];
    

    就够了:)

    【讨论】:

      【解决方案3】:

      不要用 PHP 回显 HTML!(如果可以避免的话)。

      调试 HTML 更加困难并且更容易出错(如您所见)。您还会失去 IDE 对 HTML 的任何支持。

      相反,将 PHP 嵌入 HTML:

      <?php    
      //...
      $result=mysql_query($sql);
      $row = mysql_fetch_assoc($result); // why are you doing this? 
                                         // this will skip the first row
      ?>
      <?php while(($row = mysql_fetch_array($result))): ?>
         <input type="radio" value="<?php echo $row['cnumber']; ?>" />
         <?php echo $row['cname']; ?> 
         <br />
      <?php endwhile; ?>
      

      参考:Alternative syntax for control structures


      对您的代码的评论:您这里有一大堆引号:

      echo "<input type="radio";
      //   ^            ^     ^
      //   └ start  end ┘     └ start
      echo "value=";
      //   ^      ^
      //   └ end  └ start
      //   etc
      

      Read more about strings. 确保始终正确匹配引号。

      【讨论】:

        【解决方案4】:
        echo '<input type="radio" value="'.$row["cnumber"].'" />'.$row["cname"].'<br />';
        

        echo "<input type='radio' value='{$row["cnumber"]}' />{$row["cname"]}<br />";
        

        echo "<input type=\"radio\" value=\"{$row["cnumber"]}\" />{$row["cname"]}<br />";
        

        echo '<input type=\'radio\' value=\''.$row["cnumber"].'\' />'.$row["cname"].'<br />';
        

         while($row = mysql_fetch_array($result)){
         $html .= "<input type='radio' value='{$row["cnumber"]}' />{$row["cname"]}<br />";
         }
        
         echo $html;
        

         while($row = mysql_fetch_array($result)){
         extract($row);
         $html .= "<input type='radio' value='{$cnumber}' />{$cname}<br />";
         }
        
         echo $html;
        

         while($row = mysql_fetch_array($result)){
         extract($row);
         printf("<input type='radio' value='%s' />%s<br />", $row["cnumber"] , $row["cname"]);
         }
        

        【讨论】:

        • 通常对 html 属性使用单引号是不好的做法——它仍然有效:)
        • @Nayena:这只是说明反斜杠的使用和引号的使用的示例;) PS:无论如何,php 都会自动将其转换为双引号。 ;))
        【解决方案5】:
        $result=mysql_query($sql);
        $row = mysql_fetch_assoc($result);
         while($row = mysql_fetch_array($result)){
            echo "<input type='radio' ";
            echo "value=";
            echo $row["cnumber"];
                echo "/>";
                echo $row["cname"]; 
            echo "<br />";
          }
        

        当回声中有引号时,它们必须不同于包含引号

        echo "<input type='hidden'>";
        

        如果包含引号是“,则这些引号内的引号必须是单引号:'

        【讨论】:

          【解决方案6】:

          您与您的报价非常不一致。破坏脚本的第一行是echo "&lt;input type="radio"; - 应该是:echo '&lt;input type="radio"';

          【讨论】:

            【解决方案7】:

            这样的事情是行不通的:

              echo "<input type="radio";
            

            你必须这样写:

              echo "<input type=\"radio\"";
            

            " 是一个特殊字符,如果它在字符串内部,则必须在其前面放置一个\

            这样写:

            $result=mysql_query($sql);
            $row = mysql_fetch_assoc($result);
            while($row = mysql_fetch_array($result)){
              echo "<input type=\"radio\" value=\"".$row['cnumber']."\" />".$row['cname']."<br />";
            }
            

            (未经测试,但它应该可以工作?!)。

            【讨论】:

            • 您应该为 PHP 字符串使用单引号,因为无论如何您都没有变量,这样更容易阅读。例如echo '&lt;input type="radio"';
            【解决方案8】:

            你引用了一个带引号的字符串:

            echo "$row["cname"]";
            

            这样做:

            echo $row["cname"];
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2021-04-12
              • 1970-01-01
              • 2017-09-11
              • 2018-08-25
              • 2021-09-06
              • 1970-01-01
              相关资源
              最近更新 更多