可能重复:
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:看起来我没有使用下拉菜单中的选项,但我没有在这里写完整个代码。
答案 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 ?>