传递PHPvariables到JavaScript

我有一个PHP会话variables$_SESSION['user'] ,在整个会话中都处于活动状态。 在头部分,我有我的JavaScript文件, scripts.js

如果我需要像下面这样的东西,如何将会话variables传递到JavaScript文件中。

 $.("#btn').click ( function() { alert('<?php echo $_SESSION['user']; ?>'); } ) 

由于JavaScript文件中没有识别<?php ?> ,所以上面的代码不起作用。 所以我必须把自己的PHP文件,但我怎么把它保存在JavaScript文件?

在您的PHP文件中,您可以将您的用户设置为全局variables:

 <script type="text/javascript"> var ptamzzNamespace = { sessionUser : '<?php echo $_SESSION['user']; ?>' } </script> 

在包含您的外部JavaScript代码之前join这个。

然后在你的JavaScript文件中,你可以使用它:

 $.("#btn').click ( function() { alert(ptamzzNamespace.sessionUser); } ) 

另外:如果你不确定你的会话varibale是否可以包含引号本身,你可以使用addslashes()来解决这个问题:

<?php echo addslashes($_SESSION['user']); ?> <?php echo addslashes($_SESSION['user']); ?>即使这可能会产生你不想显示的东西(因为它会产生一个斜杠string),这将有助于你的代码不会失败。 (感谢Artefacto)

这会成为你的select吗?

将用户标识(在PHP中)设置为隐藏在文件中的inputtypes。 在您的JavaScript代码中,您可以读取隐藏的inputtypes值。

你可以设置你的服务器来parsing.js文件为PHP。 例如,在Apacheconfiguration或.htaccess文件中:

 <FilesMatch "scripts.js"> AddHandler application/x-httpd-php5 .js </FilesMatch> 

尝试下面的逻辑

 print ' <script type="text/javascript" language="javascript"> function checkForm() { var username = "'.$_SESSION['user'].'"; if( username == '') { alert('No Times selected'); return false; } } </script>'; 

将包含的JavaScript文件parsing为PHP

在你的JavaScript目录下创build一个.htaccess文件,并添加下面一行。

 AddHandler php-cgi .js 

到目前为止, <?php ?>标签被您的JavaScript文件识别。

使用Ajax来获取用户ID

创build一个名为getID.php的文件,该文件只回应用户ID。 然后在你的JavaScript文件中,你可以使用下面的代码。

 $.get('getID.php', function(uid) { alert('User ID is:' + uid); }); 

在包含JavaScript打印用户标识之前创build一个脚本标签。

 <script type="text/javascript"> userID = <?php echo $_SESSION['user']; ?>; </script> 

您现在可以使用variablesuserID访问用户标识。