0

可能重复:
在 javascript (.js) 文件中包含 PHP

我一直在寻找一段时间,我似乎可以找到任何有效的答案来解决我的问题。

我目前有一个 header.js 文件(这是我的头文件),里面有一个单词“login”,它将链接到 login.php 供用户登录。现在用户成功登录我的网站后,我将如何将 header.js 文件中的“登录”一词更改为其他内容?(例如,您好“用户名”,以便用户知道他们已登录)如何在 js 文件中使用 php,甚至在 js 中调用 php 文件?有没有更好的方法可以实现这一目标?

在此先感谢您的时间。

4

2 回答 2

1

将其命名为 header.php 或 header.js.php 现在在 header.js.php 中

<?php
session_start();
?>
<script type='text/javascript' language='Javascript'>
<?php
 if($_SESSION['loggedIn']){
?>
    document.write('Hello <?=$VrUserName?>');
<?php
} else{
?>
 document.write('<a href="/login.php">login</a>');
<?php
}
?>
</script>

另一种方式(这将允许 header.js 被浏览器缓存,因为 .php 文件没有被缓存)将登录文本作为 header.js 中的 js 变量在包含的文件中分配这个变量在 php 生成的 js 代码中(如上所述)在 header.js 之前。

于 2012-09-21T17:25:09.427 回答
1

你也可以通过 Ajax 来实现:

var linkName;
$.ajax({
    url: "check_login.php",
    dataType: "json",
    success: function(json){
        if(json.data != '')
            linkName = "Welcome!";
        else
            linkName = "<a href='#'>Login</a>";
    }
});

在 check_login.php 文件中,您可以检查用户是否已登录,并通过回显 json_encode($results) 将结果作为 json 编码数组返回;

您还可以返回用户的用户名并将其附加到您的链接名称中。

var linkName = "Welcome!"+json.data.username;

响应:( “你能给我看一些 check_login.php 文件的代码吗?”)

是的,您想展示文件的特定方面吗?此文件中的逻辑取决于您如何设置用户登录状态,如果您使用会话,它可能如下所示:

<?php
$user = Array();
if(isset($_SESSION['logged_in']))
{
    $user['logged'] = 'true';
    $user['name'] = 'James';
}

echo json_encode($user);
?>
于 2012-09-21T18:00:39.550 回答