WebMethods を使用して、select に SQL の結果を入力しようとしています。
データを取得して渡すことはできますが、形式が [{"",""},{"","" ではなく [["",""],["",""]] になっていることに気付きました}]。
$.each を使用すると、選択のオプションとして単一の文字が取得され、JSON 区切り文字を含む出力から各文字が取得されます。
VB
Dim MArray()() As String = New String(sqlDataset.Tables(0).Rows.Count)() {}
Dim i As Integer = 0
For Each rs As DataRow In sqlDataset.Tables(0).Rows
MArray(i) = New String() {rs("suppliername").ToString(), rs("supplierid").ToString()}
i = i + 1
Next
Dim js As JavaScriptSerializer = New JavaScriptSerializer()
Dim sJSON As String = js.Serialize(MArray)
Return sJSON
Jクエリ
$(document).ready(function () {
$.ajax({
type: "POST",
url: "SupplierAdmin.aspx/PopulateSupplierSelectDropDownList",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
$("#supplierSelect").empty();
$.each(msg.d, function(name, value) {
$('#supplierSelect').append($('<option>').text(name).attr('value', value));
});
}
});
});