PHP的传递变量到标签

时间:2018-08-09 14:57:00

标签: php html label

我有一个将变量传递到“标签”标签的函数。由于某种原因,它只是不会在“标签”标签中显示变量。这是我的代码:

function radioButton($id, $name, $value, $txt){
   $str = "";
   $str .= '
      <input type="radio" id=$id name=$name value=$value checked>
      <label class="custom-control-label" for=$id> <?php echo $txt; ?></label>
   ';
   return $str;
}

<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
   <?php echo radioButton("MyID", "MyName", "MyValue", "Do Nothing"); ?>

   <input type="submit" name="submit" value="Submit"><br>
</form>

显示单选按钮,但不显示“标签”标签中的变量。我尝试将变量用php标记包装,就像互联网上有人建议的那样,但这给了我空白。 https://www.codeproject.com/Questions/1119369/Pass-PHP-variable-value-into-HTML-label

这甚至有可能吗?要将变量传递给php中的html标签标记?

1 个答案:

答案 0 :(得分:1)

您的代码有几个问题:

  • 字符串需要用引号引起来,而不是单引号。这样可以更轻松地进行字符串连接。 (PHP Manual
    • 注意:如果您不想这样做,可以这样连接:$str = '<div>' + $variable + '</div>'PHP Manual
  • 用单引号将变量引起来(如果字符串用双引号定义,如果不是,则用双引号引起来)
  • 在PHP中,您无需打开PHP标记。

此代码可解决您的问题:

function radioButton($id, $name, $value, $txt){
   $str = "
      <input type='radio' id='$id' name='$name' value='$value' checked>
      <label class="custom-control-label" for='$id'>$txt</label>
   ";
   return $str;
}

您应该考虑解决其他一些问题:

在PHP内使用HTML标记通常并不受欢迎,但是,如果必须这样做,通常最好使用heredocnowdoc标记,因为它看起来更干净,并且允许您执行简单的字符串连接,但还允许您在字符串本身内部使用双引号(不转义)

function radioButton($id, $name, $value, $txt){
   $str = <<<RADIOBUTTON
        <input type="radio" id="$id" name="$name" value="$value" checked>
        <label class="custom-control-label" for="$id">$txt</label>
RADIOBUTTON;
//note, the line before this can't have any whitespace before it.
   return $str;
}