使用 JavaScript 以这种方式填充表单将需要一种迂回的方法。
要么创建一个隐藏字段供 javascript 读取以获取 $location 变量的值,要么创建一个检索它的 ajax 调用。
接下来,您将编写一个 JavaScript 函数,该函数根据位置返回适当的值。就像是:
function get_tours( location ){
var tours = {};
switch locations {
case 'Austin':
tours = { "City Center": {
"text": "City Center"
"value": "city_center"
}
};
break;
//etc...
}
return tours;
}
如果您选择使用 AJAX 方法,则需要在 AJAX 成功返回时调用此游览选项设置函数。
既然您的 JavaScript 变量中有游览,您将需要更新由 PHP 生成的页面中元素的元素。就像是:
function create_tour_options ( tours ){
var select = document.getElementById('tour');
for ( tour in tours ){
tour_option = document.createElement('option');
tour_option.value = tours['tour']['value'];
tour_option.text = tours['tour']['text'];
select.appendChild('tour_option');
}
// Probably more efficient to create a new select object
// and replace the existing one instead of adding and
// removing individual options.
}
此外,如果您不需要使用 JavaScript,您可以简单地编写一个 php 函数来执行上述操作并返回您的 $options_tour 变量。就像是:
function get_tours( $location='Austin' ){
$tours = array();
switch $location {
case 'Austin':
$tours = array( "text" => "City Center"
"value" => "city_center"
);
break;
//etc...
}
return $tours;
}
我相信如果可以的话最好使用 PHP,因为选项将在初始页面加载时生成,之后不必插入。
另外我不确定你是否使用 JQuery,所以我尝试使用 vanilla JavaScript 示例代码。