可能重复:
如何将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 ?>