javascript - Codeigniter 无法将 php var 发送到 javascript 和 .load 内容

标签 javascript ajax codeigniter

我在将变量从 php 发送到 javascript 时遇到问题。

我通过此链接拉取 javascript (Ajax)。

<script src="<?php echo base_url().'assets/js/main.js' ?>"></script>

在我的main.js中:

var base_url = '<?php echo base_url(); ?>';
var language = '<?php echo $language; ?>';

我尝试通过使用 ajax .load 动态加载内容而不刷新网页:

var addressValue = $(this).children('a').attr("href");

$('#conteudo').fadeOut("slow").load(addressValue+'/index.php?idioma='+language+' #conteudo').hide().fadeIn("slow")

我可以使用 addressValue onyl 完美加载。 但是当我尝试上面的方法时,我的语言不会回声。 如果我不使用语言,而是使用我想要的语言而不使用变量,例如葡萄牙语它就像一个魅力。 我正在使用多语言,因此我需要以用户选择的语言提取内容。

这是用户设置语言的方式

<ul class="nav pull-right language" id="barra_de_idiomas">
    <li><?php echo anchor(($this->uri->uri_string())."?idioma=english",'&nbsp;', 'class="language" id="en"') ?></li>
    <li><?php echo anchor(($this->uri->uri_string())."?idioma=portuguese",'&nbsp;', 'class="language" id="pt"') ?></li>
    <li><?php echo anchor(($this->uri->uri_string())."?idioma=german",'&nbsp;', 'class="language" id="de"') ?></li>
    <li><?php echo anchor(($this->uri->uri_string())."?idioma=french",'&nbsp;', 'class="language" id="fr"') ?></li>
</ul>

我的 Controller 构造:

    $this->load->library('user_agent');
    if ($this->config->item('language') == '') {
        if($this->input->get('idioma') == true) {
            $this->config->set_item('language', $this->input->get('idioma'));
        } elseif ($this->agent->accept_lang('en')) {
            $this->config->set_item('language', 'english');
        } elseif ($this->agent->accept_lang('de')) {
            $this->config->set_item('language', 'german');
        } elseif ($this->agent->accept_lang('pt')) {
            $this->config->set_item('language', 'portuguese');
        } else {
            $this->config->set_item('language', 'portuguese');
        }
    }
    $language = $this->config->item('language');
    $data['language'] = $language;
    $this->load->vars($data);

最佳答案

首先,我建议您使用base_url(),例如:

<script src="<?php echo base_url('assets/js/main.js') ?>"></script>

其次,您无法像在 main.js 中那样在 javascript 文件中使用 php 代码:

var base_url = '<?php echo base_url(); ?>';
var language = '<?php echo $language; ?>';

另一种选择是在 main.js 调用之前打印 JavaScript 变量:

<script type="text/javascript">
    var base_url = '<?php echo base_url(); ?>';
    var language = '<?php echo $language; ?>';
</script>

<script src="<?php echo base_url('assets/js/main.js') ?>"></script>

关于javascript - Codeigniter 无法将 php var 发送到 javascript 和 .load 内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13253081/

相关文章:

javascript - 使用标准 DOM 操作制作调用相同事件处理程序的按钮

javascript - Zombie.JS 不执行页面 javascript

javascript - Protractor :使用 api 调用的结果

mysql - 将数据作为数组连接 codeigniter 传递

CodeIgniter 路由不起作用

javascript - 无法从 React Form 中的选择组件取回提交的数据

javascript - 类型安全的嵌套属性查找

javascript - 按钮 JQuery 事件只工作一次,为什么?

javascript - javascript 中的 ajax 调用无法加载资源错误

php - 动态更改 TinyMCE 配置