0

我有这个,

    $(document).ready(function(){

        $('#link').click(function(){
            var user_login = <?php $base_url; ?>;
            window.location = user_login + '/login';
        });

    });

请注意,这$base_url是全局变量。这适用于 FF,但不适用于 Chrome 和 IE。谢谢。

4

5 回答 5

5

您需要在 php 标签周围添加引号以指定 $base_url 的值是一个字符串:

$(document).ready(function(){

    $('#link').click(function(){
        var user_login = "<?php echo $base_url; ?>";
        window.location = user_login + '/login';
    });

});

这样,当浏览器获取这个块时,它看起来像:

$(document).ready(function(){

    $('#link').click(function(){
        var user_login = "http://www.example.com"; // after php is executed
        window.location = user_login + '/login';
    });

});
于 2012-11-27T18:42:14.263 回答
3

您需要回显该变量,而不仅仅是将其放在代码块中。为了安全起见,为了防止引入 JS 语法错误,您应该对值进行 json 编码:

        var login = <?php echo json_encode($base_url); ?>;
于 2012-11-27T18:42:56.210 回答
2

见下文,注意 PHP 回声周围的引号

$(document).ready(function(){
    $('#link').click(function(){
        var login = '<?php echo $base_url; ?>';
        window.location = user_login + '/login';
    });

});
于 2012-11-27T18:43:08.373 回答
1

我想它是一个 PHP 文件,你需要用 javascript 的引号将你的变量内容括起来

 $(document).ready(function(){

        $('#link').click(function(){
            var login = <?php '\''.$base_url.'\''; ?>;
            window.location = user_login + '/login';
        });

    });
于 2012-11-27T18:43:51.133 回答
0

在 PHP 文件中运行此脚本,而不是在 .js 文件中,并且不要忘记 ECHO 您的变量并添加引号(在 javascript 中),如其他答案中所述!

于 2012-11-27T18:53:59.800 回答