将PHP变量传递给JS函数

时间:2012-08-25 17:49:14

标签: php javascript html forms onsubmit

  

可能重复:
  how to pass variables from php page to javascript and display the the data

我正在尝试将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:看起来我没有使用下拉菜单中的选项,但我没有在这里写完整个代码。

2 个答案:

答案 0 :(得分:10)

你应该使用:

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

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

答案 1 :(得分:1)

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

请避免使用PHP短标记,因为它们可能未在所有服务器中启用。使用

始终是一个好习惯
<?php echo $something ?>

而不是

<?= $something ?>