将PHP字符串变量传递给Javascript函数
我有一个Javascript函数,可以更改DIV ID的背景颜色。我只发送DIV ID和颜色。 更改BG(分区ID、颜色) 我希望Div ID是一个变量,这样我就可以设置变量,然后调用函数。如果我在下面的示例中硬编码Div ID的文本字符串-'floorData2',效果很好。我有一个PHP变量($floorDiv),它包含Div ID,并希望在调用changeBG()函数时将'floorData2'替换为$floorDiv将PHP字符串变量传递给Javascript函数,javascript,php,Javascript,Php,我有一个Javascript函数,可以更改DIV ID的背景颜色。我只发送DIV ID和颜色。 更改BG(分区ID、颜色) 我希望Div ID是一个变量,这样我就可以设置变量,然后调用函数。如果我在下面的示例中硬编码Div ID的文本字符串-'floorData2',效果很好。我有一个PHP变量($floorDiv),它包含Div ID,并希望在调用changeBG()函数时将'floorData2'替换为$floorDiv <script> test("<?php ech
<script>
test("<?php echo addslashes($a) ; ?>");
</script>
我已经尝试了单引号、双引号、转义引号的每一种组合。我仍然无法让它工作。使用变量$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;
}
?>
对于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 ?>
一楼
对于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;
}
?>
一楼
试试这个
<?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;
}
?>
一楼
将第5行-第7行代码更改为:
echo '<div class="FloorH">
First Floor <button onclick="changeBG(\'' . $floorDiv . '\',\'#F0F\');">Magenta</button>
</div>';
echo'
一楼洋红
';
因为PHP不会解析单引号字符串中的变量
关于双引号字符串中变量解析的更多详细信息,您可以查看此php文档将第5行-第7行代码更改为:
echo '<div class="FloorH">
First Floor <button onclick="changeBG(\'' . $floorDiv . '\',\'#F0F\');">Magenta</button>
</div>';
echo'
一楼洋红
';
因为PHP不会解析单引号字符串中的变量
双引号字符串中变量解析的更多详细信息您可以查看此php文档是的,您可以轻松完成。假设您有函数
<script>
function test(param)
{
alert(param);
}
</script>
功能测试(参数)
{
警报(参数);
}
现在调用函数
<script>
test("<?php echo addslashes($a) ; ?>");
</script>
测试(“”);
是的,您可以轻松完成。假设您有函数
<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>";
echo <<<HTML
<div class="FloorH">
First Floor <button onclick="changeBG('{$floorDiv}','#F0F');">Magenta</button>
</div>
<div id='floorData$floorNow'></div>
HTML;
echo”
一楼洋红
";
或者像这样使用herdoc:
echo "<div class=\"FloorH\">
First Floor <button onclick=\"changeBG(\"{$floorDiv}\",\'#F0F\');\">Magenta</button>
</div>";
echo <<<HTML
<div class="FloorH">
First Floor <button onclick="changeBG('{$floorDiv}','#F0F');">Magenta</button>
</div>
<div id='floorData$floorNow'></div>
HTML;
echo您可以这样做:
echo "<div class=\"FloorH\">
First Floor <button onclick=\"changeBG(\"{$floorDiv}\",\'#F0F\');\">Magenta</button>
</div>";
echo <<<HTML
<div class="FloorH">
First Floor <button onclick="changeBG('{$floorDiv}','#F0F');">Magenta</button>
</div>
<div id='floorData$floorNow'></div>
HTML;
echo”
一楼洋红
";
或者像这样使用herdoc:
echo "<div class=\"FloorH\">
First Floor <button onclick=\"changeBG(\"{$floorDiv}\",\'#F0F\');\">Magenta</button>
</div>";
echo <<<HTML
<div class="FloorH">
First Floor <button onclick="changeBG('{$floorDiv}','#F0F');">Magenta</button>
</div>
<div id='floorData$floorNow'></div>
HTML;
echoecho'';
也看看!这种语法减少了这样的问题。谢谢杰夫。效果很好。我应该在4小时前问这个问题。echo'';
也看看!这种语法减少了这样的问题。谢谢杰夫。效果很好。我应该在4小时前问这个问题。需要谢谢:)@Phil我错过了。需要谢谢:)@Phil我错过了。如果$a
包含引号字符,例如$a='我有“引号”字符;
?那么你可以使用addslashes。我正在更新代码。如果$a
包含引号字符,例如$a='我有“引号,该怎么办“字符”代码>?然后可以使用addslashes。我正在更新代码。谢谢你,菲尔。那代码比我的干净多了。与Jeff的解决方案相比,这将需要更多的编辑,但我将检查替代语法。谢谢Phil。那代码比我的干净多了。与Jeff的解决方案相比,这将需要更多的编辑,但我将检查替代语法。