0

webmethodを呼び出してjsonオブジェクトを取得し、jqueryを使用してaspxファイルのデータを表示しようとしています。しかし、何かがおかしいので、機能していません。以下のコードで説明します

これがwebmethodです

Database db = DatabaseFactory.CreateDatabase("Connection String2");
        DbCommand dbCommand;
        dbCommand = db.GetStoredProcCommand("MedBul_Select_Selected_Professional");
        db.AddInParameter(dbCommand, "id", DbType.Int16, Convert.ToInt16(id));
        IDataReader dr = db.ExecuteReader(dbCommand);
        if(dr.Read())
        {
            int p_id = Convert.ToInt16(dr["ProfessionalID"].ToString());
            string firstname = dr["ProfessionalName"].ToString();
            string lastname = dr["ProfessionalSurname"].ToString();
            int prefix = Convert.ToInt16(dr["PrefixID"].ToString());
            int gender = Convert.ToInt16(dr["Gender"].ToString());
            string birthdate = dr["BirthDate"].ToString();
            string mobilephone = dr["MobilePhone"].ToString();
            string email = dr["Email"].ToString();
            string diplomano = dr["DiplomaNo"].ToString();

            return_str += "[{\"id\":\"" + p_id + "\",\"firstname\":\"" + firstname + "\",\"lastname\":\"" + lastname + "\",\"prefix\":\"" + prefix + "\",\"gender\":\"" + gender + "\",\"birthdate\":\"" + birthdate + "\",\"mobilephone\":\"" + mobilephone + "\",\"email\":\"" + email + "\",\"diplomano\":\"" + diplomano + "\"}]";
        }

これがjqueryコードです。

  $('#btn_second').click(function () {
            //$('#txt_isim_4').val('test arif');
            $.ajax({
                type: "POST",
                url: "Registration.aspx/get_selected_professional",
                data: "{'id':'2'}",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (data) {
                    $.each(data, function (index, value) {
                        alert(value);
                        alert(value.d);
                        alert(index);
                        alert(value.firstname);
                    });

                }
            });
        });

何が返されるかをalert()しようとしていますが、何も表示されません。データベースからデータを取得して適切に解析できると確信しています。

私のコードの何が問題になっていますか?jsonオブジェクトを表示するにはどうすればよいですか?

4

2 に答える 2

2

あなたの反応を見て..

return_str += "[{\"id\":\"" + p_id + "\",\"firstname\":\"" + firstname + "\",\"lastname\":\"" + lastname + "\",\"prefix\":\"" + prefix + "\",\"gender\":\"" + gender + "\",\"birthdate\":\"" + birthdate + "\",\"mobilephone\":\"" + mobilephone + "\",\"email\":\"" + email + "\",\"diplomano\":\"" + diplomano + "\"}]";

eachループを使用する必要はありません..ajaxあなたが言及dataTypeしたので..演算子をjson使用してオブジェクトを取得します.

これを試して

success: function (data) {
              alert(data.id);
              alert(data.firstname); // similar for others
            }
于 2013-03-07T11:36:46.533 に答える
0

返されたjsonは次のようになると思います

var $json ='[{"id":"1","name":"john"},{"id":"2","name":"smith"}]';
var json = $.parseJSON($json);//will already be parsed in your callback function bcoz of the dataType:json

ループを次のように変更してみてください

$.each(json,function(i,j){
    $(j).each(function(k,v){
     console.log(v.id);
     console.log(v.name);
    });
});

http://jsfiddle.net/Eu9Pp/

于 2013-03-07T11:37:01.167 に答える