我也遇到了这个问题。我混合使用 Zend_Locale 和自定义 xml 文件。
Zend_Locale 用于生成国家列表:
$locale = new Zend_Locale(Zend_Locale::BROWSER);
$countries = $locale->getTranslationList('Territory', Zend_Locale::BROWSER, 2);
asort($countries, SORT_LOCALE_STRING);
// unset invalid countries
unset($countries['SU'], $countries['ZZ'], $countries['IM'], $countries['JE'], $countries['VD']);
然后我的自定义 XML 文件如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<countries>
<AD>
<region>Andorra</region>
<region>Parròquia de Canillo</region>
<region>Parròquia d'Encamp</region>
<region>Parròquia de la Massana</region>
其中 的每个子元素<countries>
是对应于 的键值的 2 个字母的国家代码$countries
。然后,每当更改国家/地区下拉值时,我都会使用 ajax/php/xpath 重新填充州/省下拉列表。
随意在这里下载我的 XML 文件:http: //gregan.org/provinces.xml
我不记得我从哪里得到原始数据,我也不保证它的有效性