【问题标题】:Use session in external js file在外部 js 文件中使用会话
【发布时间】:2019-07-31 06:27:31
【问题描述】:

我想在外部 js 文件中使用 session,但它不起作用。我知道无法访问外部 AJAX 文件中的会话,但有人有解决方案吗?

当我在视图中插入代码时,它运行正常,而且我认为 URL 也不正确!我使用 CodeIgniter 作为后端。

function show_msg() {
    $.ajax({
        type: 'ajax',
        url: '<?php echo base_url(); ?>index.php/chat/showmsg',
        async: false,
        dataType: 'json',
        success: function (data) {
            var user = '<?php echo $this->session->userdata('username'); ?>';
            var html = '';
            var i;
            for (i = 14; i >= 0; i--) {
                if (data[i].user !== user) {
                    html +=
                            '<span style="color:green;font-size:12px;">' + data[i].user + '</span>' + ' ' + '<span style="color:dimgrey;font-size:10px;">' + data[i].date + '</span>' + '<div style="margin-right:25px;margin-bottom:25px;border:0px solid grey; border-radius: 0px 12px 12px 12px; padding:10px;width:auto;background-color:white;;box-shadow:0px 0px 0px 0px grey;direction:rtl;">' + data[i].msg + '</div>';
                } else {
                    html +=
                            '<span style="color:green;font-size:12px;">' + "" + '</span>' + ' ' + '<span style="color:dimgrey;font-size:10px;">' + data[i].date + '</span>' + '<div style="margin-left:30px;margin-bottom:25px;border:0px solid grey; border-radius: 8px 0px 8px 8px; padding:10px;width:auto;background-color:#bbf490;box-shadow:0px 0px 0px grey;direction:rtl;">' + data[i].msg + '</div>';
                }
            }
            $('#show_data').html(html);
        }
    });

}

【问题讨论】:

    标签: ajax codeigniter session


    【解决方案1】:

    没有直接的方法可以在外部 .js 文件中插入 PHP 变量。因为 PHP 不解析 js 文件。一种快速而肮脏的方法是在php视图文件中声明一个JS变量(由于全局变量污染,请谨慎声明变量,使用描述性名称)。

         <script type="text/javascript">
            var session_user_id = '<?php echo $this->session->userdata('username'); ?>';
            var base_url = '<?php echo base_url(); ?>';
        </script>
    

    并在你的外部 js 文件中使用这个变量

            function show_msg() {
            $.ajax({
                type: 'ajax',
                url: base_url + 'index.php/chat/showmsg',
                async: false,
                dataType: 'json',
                success: function (data) {
                    var user = session_user_id;
                    var html = '';
                    var i;
                    for (i = 14; i >= 0; i--) {
                        if (data[i].user !== user) {
                            html +=
                                    '<span style="color:green;font-size:12px;">' + data[i].user + '</span>' + ' ' + '<span style="color:dimgrey;font-size:10px;">' + data[i].date + '</span>' + '<div style="margin-right:25px;margin-bottom:25px;border:0px solid grey; border-radius: 0px 12px 12px 12px; padding:10px;width:auto;background-color:white;;box-shadow:0px 0px 0px 0px grey;direction:rtl;">' + data[i].msg + '</div>';
                        } else {
                            html +=
                                    '<span style="color:green;font-size:12px;">' + "" + '</span>' + ' ' + '<span style="color:dimgrey;font-size:10px;">' + data[i].date + '</span>' + '<div style="margin-left:30px;margin-bottom:25px;border:0px solid grey; border-radius: 8px 0px 8px 8px; padding:10px;width:auto;background-color:#bbf490;box-shadow:0px 0px 0px grey;direction:rtl;">' + data[i].msg + '</div>';
                        }
                    }
                    $('#show_data').html(html);
                }
            });
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-02-04
      • 1970-01-01
      • 1970-01-01
      • 2018-06-29
      • 2018-09-23
      • 1970-01-01
      • 2012-06-19
      相关资源
      最近更新 更多