Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/246.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将PHP字符串变量传递给Javascript函数_Javascript_Php - Fatal编程技术网

将PHP字符串变量传递给Javascript函数

将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

我有一个Javascript函数,可以更改DIV ID的背景颜色。我只发送DIV ID和颜色。 更改BG(分区ID、颜色)

我希望Div ID是一个变量,这样我就可以设置变量,然后调用函数。如果我在下面的示例中硬编码Div ID的文本字符串-'floorData2',效果很好。我有一个PHP变量($floorDiv),它包含Div ID,并希望在调用changeBG()函数时将'floorData2'替换为$floorDiv

<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">
            &nbsp;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">
        &nbsp;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">
        &nbsp;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">
        &nbsp;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">
        &nbsp;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">
            &nbsp;First Floor <button onclick="changeBG(\'' . $floorDiv . '\',\'#F0F\');">Magenta</button>
      </div>';
echo'
一楼洋红
';
因为PHP不会解析单引号字符串中的变量


关于双引号字符串中变量解析的更多详细信息,您可以查看此php文档

将第5行-第7行代码更改为:

echo '<div class="FloorH">
            &nbsp;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\">
            &nbsp;First Floor <button onclick=\"changeBG(\"{$floorDiv}\",\'#F0F\');\">Magenta</button>
    </div>";
    echo <<<HTML
    <div class="FloorH">
            &nbsp;First Floor <button       onclick="changeBG('{$floorDiv}','#F0F');">Magenta</button>
    </div>
    <div id='floorData$floorNow'></div>
HTML;
echo”
一楼洋红
";
或者像这样使用herdoc:

    echo "<div class=\"FloorH\">
            &nbsp;First Floor <button onclick=\"changeBG(\"{$floorDiv}\",\'#F0F\');\">Magenta</button>
    </div>";
    echo <<<HTML
    <div class="FloorH">
            &nbsp;First Floor <button       onclick="changeBG('{$floorDiv}','#F0F');">Magenta</button>
    </div>
    <div id='floorData$floorNow'></div>
HTML;

echo您可以这样做:

    echo "<div class=\"FloorH\">
            &nbsp;First Floor <button onclick=\"changeBG(\"{$floorDiv}\",\'#F0F\');\">Magenta</button>
    </div>";
    echo <<<HTML
    <div class="FloorH">
            &nbsp;First Floor <button       onclick="changeBG('{$floorDiv}','#F0F');">Magenta</button>
    </div>
    <div id='floorData$floorNow'></div>
HTML;
echo”
一楼洋红
";
或者像这样使用herdoc:

    echo "<div class=\"FloorH\">
            &nbsp;First Floor <button onclick=\"changeBG(\"{$floorDiv}\",\'#F0F\');\">Magenta</button>
    </div>";
    echo <<<HTML
    <div class="FloorH">
            &nbsp;First Floor <button       onclick="changeBG('{$floorDiv}','#F0F');">Magenta</button>
    </div>
    <div id='floorData$floorNow'></div>
HTML;

echo
echo'';
也看看!这种语法减少了这样的问题。谢谢杰夫。效果很好。我应该在4小时前问这个问题。
echo'';
也看看!这种语法减少了这样的问题。谢谢杰夫。效果很好。我应该在4小时前问这个问题。需要
谢谢:)@Phil我错过了。需要
谢谢:)@Phil我错过了。如果
$a
包含引号字符,例如
$a='我有“引号”字符;
?那么你可以使用addslashes。我正在更新代码。如果
$a
包含引号字符,例如
$a='我有“引号,该怎么办“字符”?然后可以使用addslashes。我正在更新代码。谢谢你,菲尔。那代码比我的干净多了。与Jeff的解决方案相比,这将需要更多的编辑,但我将检查替代语法。谢谢Phil。那代码比我的干净多了。与Jeff的解决方案相比,这将需要更多的编辑,但我将检查替代语法。