# 城市選擇
FastAdmin中集成了強大的`city-picker`城市選擇插件,可以很方便的選擇省份和城市。
我們只需要簡單的為input元素添加一個`data-toggle="city-picker"`屬性即可自動渲染相應的城市選擇組件 。
我們還可以通過添加以下屬性來擴展城市選擇組件的功能
| 屬性 | 描述 | 示例 |
| --- | --- | --- |
| data-level | 選擇城市的級別,支持province/city/district,默認為district | data-level="city" |
| data-simple | 使用簡單的地址,比如使用內蒙古替代內蒙古自治區,默認為false | data-simple="true" |
| data-responsive | 是否為自適應,默認為false | data-responsive="true" |
| placeholder | 默認提示的文字 | placeholder="請選擇省/市" |
`city-picker`組件默認選擇后渲染的是中文城市信息,我們可以通過在JS中監聽`city-picker`更新后的事件來獲取省份城市地區對應的code值。代碼如下:
~~~
$("#city-picker").on("cp:updated", function() {
var citypicker = $(this).data("citypicker");
var code = citypicker.getCode("district") || citypicker.getCode("city") || citypicker.getCode("province");
$("#code").val(code);
});
~~~
如果我們數據庫中存放的是地區的code值,在顯示時我們則需要把對應的code通過讀取數據庫轉換成我們的地區中文,然后再設定input的value值即可。
```
<!--由于在初始化中修改了默認值,所以這里需要修改-jsonSpace/jsonValue/jsonName的值-->
<div class="form-inline" data-toggle="cxselect" data-url="/assets/libs/fastadmin-cxselect/js/cityData.min.json" data-selects="province,city,area" data-json-space="" data-json-name="n" data-json-value="">
<select class="province form-control" data-first-title="選擇省">
<option value="">請選擇</option>
<option value="浙江省" selected="">浙江省</option>
</select>
<select class="city form-control" data-first-title="選擇市">
<option value="">請選擇</option>
<option value="杭州市" selected="">杭州市</option>
</select>
<select class="area form-control" data-first-title="選擇地區">
<option value="">請選擇</option>
<option value="西湖區" selected="">西湖區</option>
</select>
</div>
```
**類別聯動**(Ajax讀取數據)
```
<div class="form-inline" data-toggle="cxselect" data-selects="first,second">
<select class="first form-control" name="first" data-url="ajax/category?type=page&pid=5">
<option value="6" selected="">網站建站</option>
</select>
<select class="second form-control" name="second" data-url="ajax/category" data-query-name="pid">
<option value="9" selected="">移動端</option>
</select>
</div>
```