0

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; ?>';

.loadこのようにajaxを使用して、Webページを更新せずにコンテンツを動的にロードしようとしています:

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

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

私はaddressValueonylで完璧にロードできます。しかし、上記の方法を試してみると、私の言語はエコーしません。使用する代わりに、language ポルトガル語などの変数なしで必要な言語を配置すると、魅力的に機能します。私は多言語で作業しているので、ユーザーが選択した言語でコンテンツを取得する必要があります。

これは、ユーザーが言語を設定する方法です

<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>

そしてコントローラーからの私の構成:

    $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);
4

2 に答える 2

1

では、JavaScript ファイルで PHP タグを使用しようとしていますか? .jsサーバーが最初に要求を PHP ファイルに渡すように設定されていない限り、それは機能しません。その後、PHP は JavaScript として配信されます。

これらの値を PHP から JavaScript に取得する最も簡単な方法は、それらをページ上の何らかの要素の属性として設定し、 で行ったように選択することですaddressValue

于 2012-11-06T14:38:31.880 に答える
1

base_url()まず、次のようなものを利用することをお勧めします。

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

次に、次のように JavaScript ファイルで php コードを使用することはできませんmain.js

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

main.js1 つの代替方法は、呼び出しの前に 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>
于 2012-11-06T14:39:43.290 に答える