传递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访问用户标识。