I have a function that passes a variable to the "label" tag. For some reason, it just won't display the variable in the "label" tag. Here's my code:
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>
The radio button is display but not the variable in the "label" tag. I tried wrapping my variable with the php tag as someone on the internet suggested but it gives me a blank. https://www.codeproject.com/Questions/1119369/Pass-PHP-variable-value-into-HTML-label
Is this even possible?? To pass a variable to an html label tag in php??
There are a couple problems with your code:
$str = '<div>' + $variable + '</div>'
(PHP Manual)This code fixes your issues:
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;
}
Some other problems you should consider fixing:
It's generally frowned upon to have HTML markup inside of PHP, but if you must do this, it's usually better to use heredoc or nowdoc markup, because it looks cleaner, and allows you to do easy string concatenation but also allows you to use double quotes inside the string itself (without escaping them)
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;
}