2010-07-28 21 views
4

我想在表單中使用jqGrid,其中用戶填寫了諸如用戶名,電話等傳統表單域。表單包含用於行項目的jqGrid,用戶可以在其中添加/編輯/刪除行,並且完成後,提交整個表單。我有網格工作,因爲我希望它出現,我只是無法獲得作爲包含窗體的一部分提交的網格內容。如何提交jqgrid值作爲formfields?

下面是一個僞代碼示例:

<form id="foo"> 
<input id="username" type="text">Your name<br> 
Enter your choices in the grid below: 
<!-- imagine jqGrid here --> 
<input type="submit" value="Submit the form"></form> 

我已經搜索,Google搜索,閱讀文檔,閱讀維基等,但只是不明白怎麼傳jqGrid的行和列formfields 。任何指導將不勝感激。

回答

2

也許這樣做會使用一個隱藏的表單字段的最佳方法:

<input type="hidden" name="gridData" value="" /> 

你會再填充形成之前提交列數據中的字段。您可以通過在網格數據被修改時更新該字段,或者在按下按鈕以提交表單(並從該函數中調用表格submit)時調用JavaScript函數來執行此操作。

要將網格數據寫入隱藏字段,可以在網格的每一行上依次調用getRowData,並將每行的數據附加到數組。或者也許有更好的方法。例如,有一個新的data選項可能工作?無論如何,一旦你有網格數據,您可以使用json2.js的數據序列化到JSON格式:

JSON.stringify(myGridData); 

然後在服務器上,你可以從這個隱藏字段解碼JSON,並相應地對其進行處理。

+0

謝謝!我得到這個與http://www.trirand.com/jqgridwiki/doku.php?id=wiki%3Amethods&s%5B%5D=getrowdata底部附近的代碼示例一起工作,該代碼示例將值獲取到單個數組中,然後我可以用json2.js序列化。 – 2010-07-28 21:46:10

+0

不客氣,很高興幫助! – 2010-07-29 01:01:29