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]);
    }
}

我的问题是......如何使“美国”和“德克萨斯”成为<option>由这两个 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 使用 AJAX cal 并传回 JSON

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

我的脚本.php

return json_encode($myVar);

2 将 PHP 嵌入到 JavaScript

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

一种方法是回显一些 JavaScript 语句:

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

然后只需在循环中使用它们来检查是否需要选择该选项。

但是,如果您要做很​​多此类事情,那么将 PHP 嵌入到 JavaScript 中并不是最好的方法。阅读 AJAX 和 PHP 的json_encode()功能。

于 2012-11-15T15:10:33.380 回答