我有這個代碼,我用它來填充我的網站上的下拉框。它是直接從數據庫中一些部門,然後應該把部門的期權價值的ID,然後將部門名稱作爲選項「名稱」(名字就說明)Webservice返回正確的數據,但解析爲undefined
/**
* This function is Run when creating the dropdown to choose a department
* when creating a new activity.
*/
function CreateNewActivityDepartmentDropdown() {
$.getJSON("http://localhost/GetDepartmentsForDropdown", function (data) {
var object = $.parseJSON(data);
var dropdown = document.getElementById("new-activity-modal-department-dropdown");
for (var department in object) {
if (object.hasOwnProperty(department)) {
var array = department.split(',');
var option = document.createElement("option");
option.id = array[0];
option.innerHTML = array[1];
dropdown.add(option);
}
}
});
}
對象所具有正確的數據在裏面。我使用Google Chromes調試器進行了檢查。數據由id,department
字符串組成,並在我的for循環中嘗試並拆分我得到的字符串,但首先每個選項的值似乎只是一個增量值(0-n)而不是我擁有的id(1-12 )和選項文本是「未定義」。
當然,當我調試我發現它似乎ID和文本是不存在的。我在這裏錯過了什麼?在JavaScript開發:)
編輯
添加了產量仍相當新的console.log(data, object)
["1,Commercial","2,Economy","3,Technical Dept.","4,IT","5,Flight Op","6,Legal","7,Ground Op","8,BDO","9,Administration","10,Training","11,Passenger Service","12,Cabin"] Array[12]
EDIT 2
數據的目的是從web服務接收。 web服務是用C#和我用來獲取它的代碼如下:
public static List<String> GetDepartmentDropdownList()
{
List<String> departments = new List<String>();
using (SqlConnection conn = GetSqlConnection())
{
using (SqlCommand cmd = new SqlCommand())
{
cmd.CommandText = "SELECT * FROM dbo.Department WHERE is_used != 0";
cmd.CommandType = CommandType.Text;
cmd.Connection = conn;
conn.Open();
using (SqlDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
Int32 id = reader.GetInt32(0);
String department = id + "," + reader.GetString(1);
departments.Add(department);
}
}
}
}
return departments;
}
,這裏是該網站所說:
public String GetDepartmentsForDropdown()
{
List<String> departments = Facade.GetDepartmentDropdownList();
return JsonConvert.SerializeObject(departments);
}
'console.log(data,object)',告訴我們你應該使用哪些數據。 – deceze
@deceze在這裏,你去了,添加到主帖。 :) – OmniOwl
@SimonH - 否。屬性名稱被插入到前一行的'department'變量中。 – Quentin