2013-05-20 102 views
1

我想通過使用jquery對話框的形式插入數據到數據庫中。在asp.net中使用ajax調用服務器端方法

這裏是我的jQuery:

$(function() { 
    $("#dialogregister").dialog({ 
    autoOpen: false, 
    width: 800, 
    height: 450, 
    modal: true, 
    show: 'blind', 
    buttons: { 
     'Register': function (event) { 
      var fname = $("#txt_firstName").val(); 
      var midname = $("#txt_middleName").val(); 
      var lname = $("#txt_lastName").val(); 
      var gender = $('input:radio[name=gender]:checked').val(); 
      var address = $("#txt_Address").val(); 
      var ph = $("#txt_Phone").val(); 
      var email = $("#txt_Email").val(); 

      $.ajax({ 
       type: 'POST', 
       url: '../Main.aspx/AddNewItem', 
       data: '{"fname":"' + fname + '", "midname":"' + midname + '", "lname":"' + lname + '", "gender":"' + gender + '", "address":"' + address + '", "phone":"' + ph + '", "email":"' + email + '}', 
       contentType: "application/json; charset=utf-8", 
       dataType: "json", 
       success: function (msg) { 
        if (msg.d) { 
         alert("Successfully added new item"); 
        } 
       }, 
       error: function() { 
        alert("Error! Try again..."); 
       } 
      }); 
      $(this).dialog('close'); 
     }, 

     'Cancel': function() { 
      $(this).dialog('close'); 
     } 
    }, 
}); 

$("#signup").click(function (event) { 
    event.preventDefault(); 
    $("#dialogregister").dialog("open"); 

}); 
}); 

當我點擊「註冊」按鈕,但我收到錯誤消息,這應該被調用。

 public static void AddNewItem(string fname, string midname, string lname, string gender, string address, string phone, string email) 
     { 
      Person person = new Person() { Fname=fname, Mname=midname, Lname=lname, Gender=gender, Address=address, Phone=phone, Email=email }; 

    //add your logic to insert item into database 
     Utility ut = new Utility(); 
     SqlConnection con = ut.openConnection(); 
     string sqlStatement = "insert into tbl_Users values('" + fname + "','" + midname + "','" + lname + "','" + 
                  gender + "','" + address + "','" + phone + "','" + email + "');"; 
     SqlCommand cmd = new SqlCommand(sqlStatement, con); 
     cmd.ExecuteNonQuery(); 
    } 
    } 

    public class Person 
    { 
     public string Fname{ get; set; } 
     public string Mname { get; set; } 
     public string Lname { get; set; } 
     public string Gender { get; set; } 
     public string Address { get; set; } 
     public string Phone{ get; set; } 
     public string Email { get; set; } 
    } 

我做錯了嗎?我如何將對話框中的值傳遞給服務器端方法?

+0

什麼是錯誤信息? – hexblot

+0

'但我得到錯誤消息'什麼是錯誤? – tnw

+0

他意味着他的ajax調用中的錯誤處理程序。 – Archer

回答

0

可以將數據傳遞到服務器的JSON

var fname = $("#txt_firstName").val(); 
var midname = $("#txt_middleName").val(); 
var lname = $("#txt_lastName").val(); 
var gender = $('input:radio[name=gender]:checked').val(); 
var address = $("#txt_Address").val(); 
var ph = $("#txt_Phone").val(); 
var email = $("#txt_Email").val(); 

var postData = { 
    Fname:fname, 
     Mname : midname, 
    Lname :lname , 
     Gender :gender , 
    Address :address , 
    Phone:ph , 
    Email :email 

}; 

$.ajax({ 
    type: 'POST', 
    url: '../Main.aspx/AddNewItem', 
    contentType:'application/json', 
    data: JSON.stringify(postData), 
    contentType: "application/json; charset=utf-8", 
    dataType: "json", 
    success: function (msg) { 
     if (msg.d) { 
       alert("Successfully added new item"); 
      } 
    }, 
+0

它仍然給我錯誤警報 –

+0

您可以請調試/使用鉻開發人員工具,以確定在AJAX調用發生了什麼,並在這裏發佈更新。 – Saravanan

0

這可能是很多事情,但兩件事情是跳出:

  1. 標記您AddNewItem()方法與[WebMethod]屬性(使用System.Web.Services)。

  2. 也許你的網址不好?嘗試「Main.aspx/...」。當然,這取決於你的目錄結構,但是我假設你的web方法代碼與爲JavaScript提供頁面的代碼位於同一個文件中。

相關問題