2012-09-06 18 views
0

我已經使用jQuery開始前幾天,雖然我發現如何解決我所遇到的任何問題(或者至少得到它的一些解決方法的工作)的信息,我似乎是停留在當前的問題:jQuery的 - 獲取從動態表單變量多種功能

我已經有一個可變數目字段的形式 - 字段的數量可以根據用戶輸入的任何一點變化,我實現了使用AJAX;由於我想保留每次重新生成表單時輸入的信息,因此我會從表單字段發佈數據,並在每次更改字段數時使用它重新填充新生成的字段;這一切都有效(儘管我知道我做的不是正確的的方式,更進一步)。

我需要做的是使用從表單字段的值再AJAX調用生成頁面上的其他表;我使用以下代碼獲取第一個AJAX調用的字段值,它由php生成並跨越jq_calc11到jq_calc99(取決於字段數量)。我明白,這可能不是正確的方式,但我無法弄清楚如何使用jQuery張貼二維數組。

$('#ts_addfields').change(function() 
{ 
var comp_select=$('#ts_addfields').val(); 
var jq_calc11=$('#tb_calc11').val(); 
var jq_calc21=$('#tb_calc21').val(); 
var jq_calc31=$('#tb_calc31').val(); 
var jq_calc41=$('#tb_calc41').val(); 
var jq_calc51=$('#tb_calc51').val(); 
var jq_calc61=$('#tb_calc61').val(); 
var jq_calc71=$('#tb_calc71').val(); 
var jq_calc81=$('#tb_calc81').val(); 
$('#calculator_input').load('/elements/AJAX-addfields.php',{addFields: comp_select, pCalc11:jq_calc11, pCalc21:jq_calc21, pCalc31:jq_calc31, pCalc41:jq_calc41, pCalc51:jq_calc51, pCalc61:jq_calc61, pCalc71:jq_calc71, pCalc81:jq_calc81});  
    }); 

我現在的問題是,我如何重新使用這些變量的值爲不同的AJAX調用?我不認爲不必通過PHP其他功能來生成另一個潛在的99行是一個好主意,所以我看着在一個單獨的功能,將這些值的可能性,並從$('#ts_addfields').change(function()或其他函數中調用它。 我已經嘗試了以下各種變體,但我找不到如何運行讀取變量的函數的方法;

jQuery.fn.calcVars = function(){ 
var jq_calc11=$('#tb_calc11').val(); 
var jq_calc21=$('#tb_calc21').val(); 
var jq_calc31=$('#tb_calc31').val(); 
var jq_calc41=$('#tb_calc41').val(); 
var jq_calc51=$('#tb_calc51').val(); 
var jq_calc61=$('#tb_calc61').val(); 
var jq_calc71=$('#tb_calc71').val(); 
var jq_calc81=$('#tb_calc81').val(); 
}; 

$('#ts_addfields').change(function() 
{ 
var comp_select=$('#ts_addfields').val(); 
$(this).calcVars(); 
$('#calculator_input').load('/elements/AJAX-addfields.php',{addFields: comp_select, pCalc11:jq_calc11, pCalc21:jq_calc21, pCalc31:jq_calc31, pCalc41:jq_calc41, pCalc51:jq_calc51, pCalc61:jq_calc61, pCalc71:jq_calc71, pCalc81:jq_calc81});  
    }); 

任何代碼我試圖返回 「jq_calc * XX *」 螢火上沒有定義的錯誤。

可能有人點我的方向是正確的?

+1

只要發佈一個二維數組,你可以使用JSON:http://stackoverflow.com/questions/6783772/serialize- JSON-2維陣列-發送二個陣列或 - 其它 – malificent

回答