如何通过php变量设置javascript布尔变量?

时间:2014-10-26 11:47:37

标签: javascript php jquery

我的数据库中有一些信息正在加载到我的页面上,但我希望能够使用if语句关于this的值,然后将javascript值指定为布尔值。我怎么能这样做? (目前我只是打印价值)

<?php 
    if ($_SESSION['loggedin'] = true){
    print_r($_SESSION['userlevel']); // THIS IS WHAT I WANT TO SPECIFY IN AN IF STATEMENT
    }
?>

<script>
var userloggedin = false;
</script>

我想在伪代码中做什么:     

<script>
var userloggedin = false;

function somefunction(){
    if (userloggedin == true){
      //Do stuff...//
     }
}
</script>

对于我对这个主题缺乏了解,我很抱歉,我才开始学习后端Web开发。

5 个答案:

答案 0 :(得分:0)

您可以通过以下方式设置带有php值的javascript变量:

<script>
    var jsVar='<?php echo $phpVar ?>';
</script>

答案 1 :(得分:0)

您可以从PHP回显一些Javascript代码,如下所示:

<script>
    var userloggedin = <?php echo ($_SESSION['loggedin'] ? 'true' : 'false'); ?>;
</script>

答案 2 :(得分:0)

如果希望表达式按预期工作,首先更改if语句以使用==双等号。然后您可以将echo变量简单地转换为javascript,如下例所示:

简单的解决方案类似于:

<?php 
    if ($_SESSION['loggedin'] == true){
        $logged_in = "true";
    } else {
        $logged_in = "false";
    }
?>

<script>
    var userloggedin = <?php echo $logged_in;?>;
</script>

答案 3 :(得分:0)

一个简单的解决方案就是在脚本标记中回显变量值。但这是不安全的,因为变量是全局的,这意味着它可以在客户端控制台中进行修改。

更好的解决方案是ajax请求和php脚本返回一些响应,这样变量的范围是ajax响应函数,因此它可以安全地修改。这是一个例子:

...
echo json_encode($_SESSION['loggedin'] ? 'true' : 'false');
...

在javascript中,您可以使用jquery .get()请求:

$.get("userLoggedIn.php", function(data) {
    var response = JSON.parse(data);
    if(data === true) {
        // user is logged in
    }
    else {
        // not logged in
    }
});

如果在其他任何事情之前处理此功能非常重要,那么同步ajax请求:

$.ajax({
    url: "userLoggedIn.php",
    async: false, // this makes request synchronous 
    success: function (data) {
        var response = JSON.parse(data);
        if (data === true) {
            // user is logged in
        } else {
            // not logged in
        }
    });

同步请求意味着客户端在执行任何其他操作之前将等待请求完成。不建议大量使用它,但有时它是唯一的方法。

答案 4 :(得分:0)

您是否尝试在论坛中搜索以前关于将PHP变量解析为javascript的帖子?

通过简单的搜索,我在这里找到了一个与PHP变量解析相关的提要:
Get variable from PHP to JavaScript

无论如何,根据我对你的问题的理解,这是一个合适的答案吗?

<?php 
    if ($_SESSION['loggedin'] == true){
        $userLevel = $_SESSION['userlevel'];
        $userLoggedIn = true;
    }
    else {
        $userLevel = null;
        $userLoggedIn = false;
    }

?>

<script type="text/javascript">
    var userLoggedIn = "<?php Print($userLoggedIn); ?>";
    var userLevel = "<?php Print($userLevel); ?>";

    if (userLoggedIn == true) {
        if (userLevel == "levelOne") {
            //Your code here
        }    
        else if (userLevel == "levelTwo") {
            //Your code here
        }
        else {
            //Your code here
        }
    }
</script>