将PHP变量传递给JS函数


Passing PHP variables to JS function

可能重复:
如何将php页面中的变量传递给javascript并显示数据

我正在尝试将PHP变量传递给javascript函数。我知道有很多关于这个问题的文章/问题,但似乎都不适合我。我的问题有点奇怪。让我从代码开始。

这是我的PHP代码:

<?php 
    session_start();
    $type = 'Dance';
    $environment = 'Outside';
?>

这是HTML代码:

<form onsubmit="showEvents(<?=$type ?>, <?=$environment ?>)">
        <select class="drop_down_menus" name="type">
            <option>All</option>
            <option>Dance</option>
            <option>Festival</option>
            <option>Music</option>
            <option>Stand-Up</option>
            <option>Theather</option>                               
        </select>
        <select class="drop_down_menus" name="environment">
            <option>All</option>
            <option>Indoor</option>
            <option>Outdoor</option>
        </select>
        <input type="submit" id="submit_button" value="Event Me Out!">
</form>
<div id="test_div">test1</div>

这是JS代码:

function showEvents(type, environment) {
    document.getElementById('test_div').innerHTML = "test2";
}

当我点击提交按钮时,"test_div"的文本必须从"test1"更改为"test2",但当我提交表单时,没有任何变化。

奇怪的事情从这里开始:

当我使用下面的PHP变量并将这两个变量都更改为"$current_year"时,它就工作了!

<?php
    $today = getdate();
    $current_year = $today['year'];
?>
<form onsubmit="showEvents(<?=$current_year ?>, <?=$current_year ?>)">
...rest of the HTML code...

我最初认为这是一个范围问题,但显然不是因为一个变量有效,而其他变量则不具有相同的范围。

也许有一些很简单的事情我不知道。如果你能帮我(或引导我回答另一个问题),我将不胜感激。到目前为止,没有一个解决方案对我有帮助。

提前谢谢。

注1:我试图回显$type$environment变量,但没有任何帮助。

注2:看起来我没有使用下拉菜单中的选项,但我没有在这里写完整的代码。

您应该使用:

<form onsubmit="showEvents('<?=$type ?>', '<?=$environment ?>')">

您正在尝试执行以下操作:showEvents(Dance, Outside)而不是:showEvents('Dance', 'Outside'),但可能会出现更多错误。例如,不建议使用<?=$type ?>。您应该使用<?php echo $type ?>

问题可能是您在代码中使用了短标签来回显php变量ie

请避免使用PHP短标签,因为它们可能不会在所有服务器中都启用。使用总是一个很好的做法

<?php echo $something ?>

而不是

<?= $something ?>