[英]Pass PHP string variable to Javascript function
我有一个Javascript函数,可更改DIV ID的背景颜色。 我只是给它发送DIV ID和颜色。 changeBG(DivID,颜色)
我希望Div ID是一个变量,所以我可以设置变量然后调用该函数。 如果我在下面的示例中硬编码Div ID的文字字符串“ floorData2”,它会很好地工作。我有一个PHP变量($ floorDiv),其中包含Div ID,并且想在其中将$ floorDiv替换为“ floorData2”。调用changeBG()函数。
我尝试过单引号,双引号,转义引号。 我仍然无法使其正常工作。 使用变量$ 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;
}
?>
将您的第5行-第7行代码更改为:
echo '<div class="FloorH">
First Floor <button onclick="changeBG(\'' . $floorDiv . '\',\'#F0F\');">Magenta</button>
</div>';
因为PHP不会解析单引号引起来的字符串中的变量。
双引号字符串中的变量解析的更多详细信息,您可以查看此php文档变量解析
PHP替代语法对于HTML模板更容易
<?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 ?>
尝试这个
<?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;
}
?>
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;
}
?>
是的,您可以轻松做到。 假设您有功能。
<script>
function test(param)
{
alert(param);
}
</script>
现在调用功能。
<script>
test("<?php echo addslashes($a) ; ?>");
</script>
您可以这样做:
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非常简单。 希望这些可以帮助您和其他人。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.