私が達成しようとしていることは次のとおりです。
カントリーボックスがあります。
<select class="country singleListBox" name="Country">
<option value="UNITED STATES">UNITED STATES</option>
<% Call GetCountry %>
</select>
GetCountryが行うのは、クライアントが有効にした国を入力することだけです。
ステートボックスがあります。
<select class="autoship singleListBox" name="State">
<option value="active">Utah</option>
</select>
選択した国の州のリストを含むか、空の値で返されるJSONを構築するページがあります。
空ではないように見えるものは次のとおりです。
{
"regions": [
{
"region": "AK"
},
{
"region": "AL"
},
{
"region": "AR"
},
{
"region": "AS"
},
{
"region": "AZ"
},
{
"region": "CA"
},
{
"region": "CO"
},
{
"region": "CT"
},
{
"region": "DE"
},
{
"region": "DC"
},
{
"region": "FM"
},
{
"region": "FL"
},
{
"region": "GA"
},
{
"region": "GU"
},
{
"region": "HI"
},
{
"region": "ID"
},
{
"region": "IL"
},
{
"region": "IN"
},
{
"region": "IA"
},
{
"region": "KS"
},
{
"region": "KY"
},
{
"region": "LA"
},
{
"region": "ME"
},
{
"region": "MH"
},
{
"region": "MD"
},
{
"region": "MA"
},
{
"region": "MI"
},
{
"region": "MN"
},
{
"region": "MS"
},
{
"region": "MO"
},
{
"region": "MT"
},
{
"region": "NE"
},
{
"region": "NV"
},
{
"region": "NH"
},
{
"region": "NJ"
},
{
"region": "NM"
},
{
"region": "NY"
},
{
"region": "NC"
},
{
"region": "ND"
},
{
"region": "MP"
},
{
"region": "OH"
},
{
"region": "OK"
},
{
"region": "OR"
},
{
"region": "PW"
},
{
"region": "PA"
},
{
"region": "PR"
},
{
"region": "RI"
},
{
"region": "SC"
},
{
"region": "SD"
},
{
"region": "TN"
},
{
"region": "TX"
},
{
"region": "UT"
},
{
"region": "VT"
},
{
"region": "VI"
},
{
"region": "VA"
},
{
"region": "WA"
},
{
"region": "WV"
},
{
"region": "WI"
},
{
"region": "WY"
},
{
"region": "AA"
},
{
"region": "AE"
},
{
"region": "AP"
}
]
}
空のように見えるものは次のとおりです。
{
"regions": [
{
"region": "empty"
}
]
}
私がやろうとしているのは、jsonページに投稿する国の値を変更して、見つかったリージョンを吐き戻すか、リージョンの文字列値を空のままにすることです。
私にとっての秘訣は、リージョンのリストが返される場合、これを上記のselect -> option
セクションに組み込む必要があることです。しかし、それが空に戻った場合はinput box here of type text
、の代わりにを使用する必要がありselect -> option
ます。
これを達成するための最良の方法/ベストプラクティスは何ですか?国が変わったときにJSONの投稿を処理できます。問題が発生するのは、リージョンが空のときに入力の選択を切り替えることです。
私はこれをjqueryオブジェクトに解析しようとしていますが、あまり成功していません。
$('select[name=Country]').change(function () {
console.log(this.value);
$.getJSON('message_center_getRegions.asp', { country: this.value }, function (json) {
var options = '';
var obj = $.parseJSON(json);
console.log('count' + obj.regions.count);
console.log(json);
})
私console.log(json)
とそれは62の異なる領域を持つオブジェクトを示しています。データベースに地域がない国を選択すると、空であると正しく表示されます。objがnullにならないようにすることはできませconsole.log('count' + obj.regions.count);
んobj is null
。