3

可能重复:
如何将变量从 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:我试图回显$typeand$environment变量但没有帮助。

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

4

2 回答 2

10

你应该使用:

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

您正在尝试这样做:showEvents(Dance, Outside)而不是:showEvents('Dance', 'Outside')但您可能会遇到更多错误。例如,<?=$type ?>不推荐。你应该使用<?php echo $type ?>.

于 2012-08-25T17:51:14.113 回答
1

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

请避免使用 PHP 短标签,因为它们可能不会在所有服务器中启用。使用它始终是一个好习惯

<?php echo $something ?>

代替

<?= $something ?>
于 2012-08-25T17:54:56.593 回答