所选单选按钮将通过下拉框显示其对应的城市列表。 例如,在选中的单选按钮“安大略省”时,将显示一个带有匹配城市的下拉框(在此示例中,“区域”为安大略省,ID为77)。
示例中下面提到的所有PHP函数,循环和JavaScript代码都正常工作:
<script type="text/javascript">
$(document).ready(function(){
$('#locationTree input:radio').change(function() {
var buttonPressed = $('input:radio[name=Region]:checked').val();
if(buttonPressed == 77) {
var listCities = $("select[name='City']");
<?php View::newInstance()->_exportVariableToView(77); ?>
<?php while(has_list_cities()) { ?>
$("<option><?php echo list_city_name(); ?></option>").appendTo(listCities);
<?php } ?>
}
});
});
</script>
要获取不同地区的城市列表,而不是具体到77,我可以稍微更改PHP代码,如下所示:
<?php View::newInstance()->_exportVariableToView($regionCode); ?>
由于变量'buttonPressed'检测到'Region'的选定ID,我可以添加以下简单脚本:
<?php $regionCode = "<script>document.write(buttonPressed)</script>"; ?>
经过上述修改后:
var listCities = $("select[name='City']");
<?php $regionCode = "<script>document.write(buttonPressed)</script>"; ?>
<?php View::newInstance()->_exportVariableToView($regionCode); ?>
我知道PHP是运行服务器端而JavaScript是运行客户端但我认为我在PHP和JavaScript之间交换变量的简单解决方案应该有效...但它不起作用。我真的要求别人帮助我让它发挥作用。
答案 0 :(得分:2)
使用HTML 5提供的数据属性属性交换变量(切断到客户端)。我这样做是为了初始页面加载。
要在初始页面加载后交换变量,可以使用ajax调用。
数据属性示例
HTML通过PHP写
<div id='universals' data-path='/zz/' data-load='1'></div>
的JavaScript
var data_dom = $('#universals')[0],
key,
universals = [];
for (key in data_dom.dataset) {
universals[key] = data_dom.dataset[key];
}