2010-05-04 108 views
0

我试图写一个函数,让我来动态执行一个Ajax调用,但我不确定如何让被传递给Ajax调用动态的关键...jQuery的阿贾克斯:动态功能

在那一刻,我的代码是这样的

$('#ajaxButton').click(function(){ 
    var form = $(this).parent().find(':input'); 
    var formVal = form.val(); 
    var objectName = form.attr('id'); 

    submitAjaxForm(formVal,objectName); 

});  

function submitAjaxForm(formVal,objectName){ 
    data = { 
      objectName : formVal 
      } 
    // Ajax Call 
    $.post('handlers/' & objectName & '.cfc?method=save',data,function(){ 
      } 
    }); 

从本质上讲,我试图做的,是一个表单字段的值传递给将处理它,然后动态设置数据项,处理程序的功能。

现在,我可以使用对象名vaidable动态地设置处理......但是当我尝试使用这个变量来设置数据的关键,它不喜欢它..

我希望这是有道理的..

有没有想法?

感谢

回答

1

尝试使用+而不是&尽量坚持你的对象名在你的URL字符串时。

$.post('handlers/' + objectName + '.cfc?method=save',data,function(){}); 

也可以尝试这样做是为了设定数据的值:

var data = {}; 
data[objectName] = formVal; 
+0

对不起,是的,这是它是如何在我的代码,我只是在错误的计算器中重写了它。这部分功能正常工作,它只是那些不起作用的动态密钥 – namtax 2010-05-04 13:45:09

+0

@namtax好了我更新了答案,以帮助解决设置数据值问题。 – PetersenDidIt 2010-05-04 13:51:42

0

我想我可能已经发现这样做的潜在途径。而不是使用地图关键字和值的,我只是我的价值观追加直接到查询字符串

$('#ajaxButton').click(function(){ 
var form = $(this).parent().find(':input'); 
var formVal = form.val(); 
var objectName = form.attr('id'); 

submitAjaxForm(formVal,objectName); 

});  

function submitAjaxForm(formVal,objectName){ 
    // Ajax Call 
    $.post('handlers/' + objectName +'.cfc?method=save' + objectName + '=' + formval ,function(){ 
     } 
}); 
0

你可以试试:

function submitAjaxForm(cssFormSelector,objectName){ 
    var data = $(formSelector).serialize(); 
    $.post('handlers/' & objectName & '.cfc?method=save',data); 
} 

submitAjaxForm('#myForm',objectName);