2012-04-26 91 views
0

我需要從使用GET的用戶列表中POST服務器的用戶名,但如何將該用戶名作爲字符串進行POST。 任何幫助表示讚賞,在此先感謝!要通過使用jQuery POST GET值GET

//get a list of users from server side 
$.getJSON(
    '/userlist', 
    function(data) { 
    var user = data.users; 
    $("#utbildning").text(user[1].username); 
    $("#tekniker").text(user[2].username); 
    } 
); 

//post user name and password at login 
$(document).ready(function() { 
    $("#knapp").click(function(){ 

    //name of the user should be a name from the user list comes from server 
    var name=$.getJSON(
     '/userlist', 
     function(data) { 
     var user = data.users; 
     user[1].username; 
     } 
    ); 
    var pass=$("#kod").val(); //password from input field 
    var data = new Object(); 
    data["username"] = name; 
    data["password"] = pass; 

    $.ajax(
     { 
     url: "/login", 
     data: JSON.stringify(data), 
     processData: false, 
     type: 'POST', 
     contentType: 'application/json', 
     } 
    ); 
    }); 
}) 
+0

是如何出現的代碼,或者是你提出的部分? – hvgotcodes 2012-04-26 14:06:54

+0

該代碼提供GET和POST數據管理 – nihulus 2012-04-26 14:10:01

+0

我的意思是,它是如何看起來,當你嘗試運行它? – hvgotcodes 2012-04-26 14:13:35

回答

1

多個錯誤:

  • 除非大的變化使用var name = $.getJson(...
  • 然後爲$ .getJSON是異步的,你應該做的一切使用變量集在Ajax調用,你不會得到任何東西$ .getJSON回調方法。就像你第一次打電話一樣。

這裏是一個「修正」版本(當然,如果你的代碼是正確的,雖然):

//get a list of users from server side 
$.getJSON(
    '/userlist', 
    function(data) { 
    var user = data.users; 
    $("#utbildning").text(user[1].username); 
    $("#tekniker").text(user[2].username); 
    } 
); 

//post user name and password at login 
$(document).ready(function() { 
    $("#knapp").click(function(){ 

    //name of the user should be a name from the user list comes from server 
    $.getJSON(
     '/userlist', 
     function(data) { 
     var user = data.users; 
     var name = user[1].username; 
     var pass=$("#kod").val(); //password from input field 
     var data = new Object(); 
     data["username"] = name; 
     data["password"] = pass; 

     $.ajax(
      { 
      url: "/login", 
      data: JSON.stringify(data), 
      processData: false, 
      type: 'POST', 
      contentType: 'application/json', 
      } 
     ); 
     } 
    ); 
    }); 
}) 
+0

謝謝!它的工作完美。我做了另一個解決方案:如果選擇用戶[1],它將用戶的值設置爲html中的不可見輸入字段,然後將輸入文本發佈到服務器 – nihulus 2012-04-27 13:31:01