2012-05-15 36 views
1

我想從一個html頁面發送一個數組到一個asp代理(到一個服務),但不能讓數組正常工作。通過隱藏輸入的形式發送數組

陣列類型:JSON

腳本:使用Javascript/jQuery的

var order = new Array(); 
for (var i = 0; i < list.length; i++) { 
if (list[i].included == true) 
order.push({ MarketID: list[i].marketID, Crop: list[i].crop }) 
} 

$("#orderValue").val(order.join()); 
... 

<form action="/hd.asp" method="post" id="hdForm"> 
<input type="hidden" name="order" id="orderValue" /> 
... 
</form> 

刪除陣列,它工作正常,但陣列必需的屬性。我試過只是發送數組,使用.join()和其他一些東西,但似乎沒有任何工作。

+0

你能告訴你哪裏序列化數組的代碼並將其分配給該字段? – CompanyDroneFromSector7G

+0

在嘗試設置val之前嘗試一個'alert(order)',以確保'order'實際上是一個包含一些東西的數組。否則,請詳細說明你的意思是什麼似乎沒有工作。表單沒有提交? #orderValue沒有值? – lbstr

回答

0

[編輯] c.hill了那裏,第一:$ [/編輯]

不要使用join(),使用JSON.stringify(),如:

var doit = function(myArray) { 
    var arrayString = JSON.stringify(myArray); 
    $('#orderValue').val(arrayString); 
    // rest of code 
} 
+0

JSON.stringify(order)也不起作用,例如使用後數組的樣子:order =%5B%7B%22MarketID%22%3A1352%2C%22Crop%22%3A4%7D%2C%7B%22MarketID %22..repea ting – DW333

+0

它看起來URLEncoded。嘗試解碼它 - 有一個函數,如果你需要它[這裏](http://classicasp.aspfaq.com/general/how-do-i-decode-an-encoded-url.html) – CompanyDroneFromSector7G

+0

JSON.stringify()是正確的答案,我在asp中有另一個問題阻止了流向wcf服務,但是這個答案解決了第一部分,並讓我找到第二部分,並得到它的一切工作,感謝您的幫助! – DW333

1

試試這個:

$("#orderValue").val(JSON.stringify(order)); 

編輯 ..哎呀,應該作爲論據爲了內部JSON.stringify()的。現在就試試。

+0

您應該將鏈接添加到已在其中進行字符串化的JSON庫,因爲OP將需要添加此腳本。 https://github.com/douglascrockford/JSON-js – lbstr

+0

不需要 - JSON是Javascript的一個子集。無需鏈接。 – CompanyDroneFromSector7G

+0

JSON.stringify(order)也不起作用,例如使用後數組的樣子:order =%5B%7B%22MarketID%22%3A1352%2C%22Crop%22%3A4%7D%2C%7B%22MarketID %22..repeating – DW333

相關問題