2012-09-06 16 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

回答