2013-01-12 21 views
0

所以我想創建一個「POST」到另一個頁面。我想像下面這樣做...如何使用一串數據執行jQuery post?

$.ajax({ 

    type: "POST", 
    url: "maintain.aspx", 
    data: { key1:value1, key2:value2, key3:value3 }, 
    success: function(msg){ 
     alert("Done!"); 
    } 

}); 

問題是我沒有變量形式的數據。相反,我與格式化,像這樣在一個字符串中的數據提供...

&myvar=1&thisguy=dave&thatguy=martin 

我怎樣才能從這個字符串鍵/值信息劃分爲Ajax調用的data: {}部分?謝謝!

回答

4

data屬性可以是您擁有的對象或查詢字符串。所以你可以直接使用它。 (儘管你可能需要去掉領先的&)。

$.ajax({ 
    type: "POST", 
    url: "maintain.aspx", 
    data: "myvar=1&thisguy=dave&thatguy=martin", 
    success: function(msg){ 
     alert("Done!"); 
    } 
}); 
+0

這是正確的 - @daveomcd請檢查jQuery的API:http://api.jquery.com/jQuery.ajax/ – Kaiesh

0

試試這個

var str = "&myvar=1&thisguy=dave&thatguy=martin"; 

var params = str.split('&'); 

var objData = {}; 
for (var i = 0; i < params.length; i++) { 
    if (params[i] !== '') { 
    var attrs = params[i].split('='); 
    if (attrs.length) { 
     objData[attrs[0]] = attrs[1]; 
    } 
    } 
} 

$.ajax({ 
    type: "POST", 
    url: "maintain.aspx", 
    data: objData, 
    success: function (msg) { 
    alert("Done!"); 
    } 

}); 
console.log(objData) 

Check Fiddle

-1

很抱歉的混亂。 下面是一個例子:

var url = "?param1=123&param2=222&param3=aaaa"; 
var json = {param1: " + getQueryString(url, param1) + ", param2: " + getQueryString(url, param2) + "} 

function getQueryString(url, param){ 
     var currentURL =""; 
     currentURL = url; 
     var separar = currentURL.split("&"); 
     var value = ""; 
     for (i = 0; i < separar.length; i++) { 
      var separarValue = separar[i].split("="); 
      if (separarValue[0] == a) { 

       value = separarValue[1]; 
       break; 
      } 
     } 
     return value; 
    } 
+0

嗯,所以你通過所有將要循環每次你想要檢索列表中的每個項目時,列表中的項目是否被列出?您已經爲O(1)問題創建了一個O(n^2)解決方案。 –