2012-08-25 94 views
3

可能重复:
how to pass variables from php page to javascript and display the the data传递PHP变量JS功能

我想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

什么控制台说一个好的做法呢? – Rooster

+1

您正在使用短标签,请确保它们已在php配置文件中激活。 – RedhopIT

+1

尝试添加引号“'”到像这样的变量:'' – RedhopIT

回答

10

你应该使用:

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

你试着这样做:showEvents(Dance, Outside)代替:showEvents('Dance', 'Outside')但你可以有更多的错误。例如,不推荐使用<?=$type ?>。你应该使用<?php echo $type ?>

+0

我不能相信这一点,我花了几天时间,现在它的工作。谢谢!我会在4分钟内接受你的回答,但它现在不允许我。感谢回声的建议,我已经改变了它。 –

1

的问题可能是你在代码中使用呼应PHP变量即

请避免使用PHP短标记,因为他们可能无法在所有的服务器上启用短标记。它总是使用的

<?php echo $something ?> 

代替

<?= $something ?>