我有一个Javascript函数,可以更改DIV ID的背景颜色。我只是发送DIV ID和颜色。 changeBG(DivID,Color)
我希望Div ID是一个变量,所以我可以设置变量然后调用该函数。如果我硬编码Div ID的文字字符串 - ' floorData2"它可以正常工作在下面的例子中。我有一个PHP变量($ floorDiv),其中包含Div ID,并希望替换' floorData2'在调用changeBG()函数时使用$ floorDiv。
我已经尝试过单引号,双引号,我想到的每种组合中的转义引号。我仍然无法使其发挥作用。使用变量$ floorDiv的正确语法是什么?
<?php
$floorCount =5;
$floorNow = 1;
while ( $floorNow <= $floorCount) {
$floorDiv = 'floorData1'; /* this will change based on floorNow */
echo '<div class="FloorH">
First Floor <button onclick="changeBG(\'floorData2\',\'#F0F\');">Magenta</button>
</div>';
echo "<div id='floorData$floorNow'>";
echo "</div>";
$floorNow = $floorNow + 1;
}
?>
答案 0 :(得分:2)
将第5行 - 第7行代码更改为:
echo '<div class="FloorH">
First Floor <button onclick="changeBG(\'' . $floorDiv . '\',\'#F0F\');">Magenta</button>
</div>';
因为PHP不会在单引号字符串中解析变量。
双引号字符串中变量解析的更多细节你可以查看这个php文档variable parsing
答案 1 :(得分:1)
<?php for ($floorNow = 1; $floorNow <= 5; $floorNow++) :
$floorDiv = 'floorData' . $floorNow;
?>
<div class="FloorH">
First Floor
<button value="<?= htmlspecialchars($floorDiv) ?>"
onclick="changeBG(this.value, '#F0F')">Magenta</button>
</div>
<div id="<?= $floorDiv ?>"></div>
<?php endfor ?>
答案 2 :(得分:1)
试试这个
<?php
$floorCount =5;
$floorNow = 1;
while ( $floorNow <= $floorCount)
{
$floorDiv = 'floorData1';
?>
<div class="FloorH">
First Floor <button onclick="changeBG('<?=$floorDiv?>','#F0F');">Magenta</button>
</div>
<div id='floorData<?=$floorNow?>'>
</div>
<?php
$floorNow = $floorNow + 1;
}
?>
答案 3 :(得分:1)
Try this one
<?php
$floorCount =5;
$floorNow = 1;
while ( $floorNow <= $floorCount) {
$floorDiv = 'floorData'.$floorNow; /* this will change based on floorNow */
echo '<div class="FloorH">
First Floor <button onclick="changeBG(\''.$floorDiv.'\',\'#F0F\');">Magenta</button>
</div>';
echo "<div id='floorData".$floorNow."'>";
echo "</div>";
$floorNow = $floorNow + 1;
}
?>
答案 4 :(得分:0)
是的,你可以轻松地做到。假设你有功能。
<script>
function test(param)
{
alert(param);
}
</script>
现在要调用函数。
<script>
test("<?php echo addslashes($a) ; ?>");
</script>
答案 5 :(得分:0)
你可以这样做:
echo "<div class=\"FloorH\">
First Floor <button onclick=\"changeBG(\"{$floorDiv}\",\'#F0F\');\">Magenta</button>
</div>";
或者像这样使用HereDoc:
echo <<<HTML
<div class="FloorH">
First Floor <button onclick="changeBG('{$floorDiv}','#F0F');">Magenta</button>
</div>
<div id='floorData$floorNow'></div>
HTML;
正如您所见,HereDoc非常简单。 希望这些可以帮助你和其他人。