0

このPHP変数があるとしましょう:

$SelectedCountry = "USA";
$SelectedState = "Texas";

一方、利用可能なすべての国と州を表示するこの JavaScript 関数があります。

function print_country(country_id){
    // given the id of the <select> tag as function argument, it inserts <option> tags
    var option_str = document.getElementById(country_id);
    option_str.length=0;
    option_str.options[0] = new Option('Where do you live now?','');
    option_str.selectedIndex = 0;
    for (var i=0; i<country_arr.length; i++) {
        option_str.options[option_str.length] = new Option(country_arr[i],country_arr[i]);
    }
}

function print_state(state_id, state_index){
    var option_str = document.getElementById(state_id);
    option_str.length=0;    // Fixed by Julian Woods
    option_str.options[0] = new Option('Select state','');
    option_str.selectedIndex = 0;
    var state_arr = s_a[state_index].split("|");
    for (var i=0; i<state_arr.length; i++) {
        option_str.options[option_str.length] = new Option(state_arr[i],state_arr[i]);
    }
}

私の質問は... 'USA' と 'Texas'<option>を作成する方法で、これら 2 つの JavaScript 関数によって生成されたものを選択する方法を教えてください。ありがとう。

注 #1 : ここで JavaScript の完全なコードを確認できます: http://sourceforge.net/projects/countries/files/

注#2:PHPにこの行を追加して呼び出される関数:

<script type="text/javascript" src="scripts/countries.js"></script>
<script language="javascript">print_country("country");</script>

基本的に、そのPHP変数を渡して、countries.jsファイル内のjavascript関数で「受信」できるようにする方法を教えてください。

4

2 に答える 2

1

1 つの方法は、いくつかの JavaScript ステートメントを単にエコーアウトすることです。

<script>
<?php
    echo "
          var SelectedCountry = '$SelectedCountry';
          var SelectedState = '$SelectedState';
    ";
?>
</script>

次に、ループでそれらを使用して、オプションを選択する必要があるかどうかを確認します。

ただし、この種のことをたくさん行う場合、PHP を JavaScript に埋め込むことは、実際には最良の方法ではありません。AJAX と PHP のjson_encode()関数について読んでください。

于 2012-11-15T15:10:33.380 に答える
1

2 つの答えがあります。

1 AJAX cal を使用して JSON を返す

$.ajax({
    url: '/myScript.php',
    success: function(data) {
        //Do something
    }
});

myScript.php

return json_encode($myVar);

2 PHP を JavaScript に埋め込む

<script>
    var myPHPVariable = <?php echo $myVar; ?>
</script>
于 2012-11-15T15:09:56.967 に答える