我有一个将变量传递到“标签”标签的函数。由于某种原因,它只是不会在“标签”标签中显示变量。这是我的代码:
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标签标记?
答案 0 :(得分:1)
您的代码有几个问题:
$str = '<div>' + $variable + '</div>'
(PHP Manual)此代码可解决您的问题:
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标记通常并不受欢迎,但是,如果必须这样做,通常最好使用heredoc或nowdoc标记,因为它看起来更干净,并且允许您执行简单的字符串连接,但还允许您在字符串本身内部使用双引号(不转义)
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;
}