我被指派为WordPress页面创建一种动态列表。我将有一个国家列表,当选择一个国家时,下一个列表将填充该国家的州,然后是该州的城市。
我一直在寻找明确的解决方案,但一直未能找到。
有人知道如何实现这个功能吗?或者我可以在插件中找到它吗?
太麻烦了...
在这里...
function datak()
{
$url = 'http://api.sba.gov/geodata/city_links_for_state_of/tx.json';
$crl = curl_init($url);
curl_setopt($crl, CURLOPT_HEADER, 0);
curl_setopt($crl, CURLOPT_RETURNTRANSFER, 1);
$rtn = curl_exec($crl);
$srn = json_decode($rtn);
$nmb=0;
echo "<select name='state' id='state'><option value='-1'>Choose a state</option>";
while( $nmb < count($srn) ) {
echo '<option value="' . $srn[$nmb]->name . '">' . $srn[$nmb]->name . ' - ' . $srn[$nmb]->primary_longitude . ' - ' . $srn[$nmb]->primary_latitude . "</option>" ;
$nmb++;
}
echo "</select>";
curl_close($crl);
}
需要进行一些清理和整理 - 存在重复条目。更改URL中的状态前缀,如果您想,可以将文件类型设置为xml,但必须重新编码过程。
让其他人来处理数据保留。只需向用户提供内容即可。
在这里获取它。
希望这有所帮助。 isme
我不知道有没有插件能够完全满足你的需求,但如果我要亲自从头开始构建它,我会首先查看这些信息,了解如何为每个城市填充数据库中的所有信息。
信息将按以下方式组织:
---------------------------------------------------------------------------------
| Country | State | Province | City | Latitude | Longitude |
---------------------------------------------------------------------------------
每个城市都是数据库中的一行。纬度和经度是可选的,但建议添加。
之后,使用AJAX动态填充下拉菜单就很简单了。基本上,您可以使用jQuery(推荐此任务,因为我们不想重复造轮子)向单独的PHP脚本发送GET或POST请求。该文件将运行SQL查询(请避免使用mysql_*函数,因为它们已被弃用。请查看PDO以获取更好的替代方案),并根据传递给它的值检查数据库中的值。
我建议在数据库中填充一些基本信息。也许设置几个州和城市,然后查看我给你的资源,以获得一个工作的概念证明。
如果遇到任何问题,请随时提出另一个问题,以便我们可以帮助您。
祝你好运。
<select name="country" class="countries" id="countryId">
<option value="">Select Country</option>
</select>
<select name="state" class="states" id="stateId">
<option value="">Select State</option>
</select>
<select name="city" class="cities" id="cityId">
<option value="">Select City</option>
</select>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="http://lab.iamrohit.in/js/location.js"></script>
https://github.com/hiiamrohit/Countries-States-Cities-database