传递超过1个表单字段

时间:2010-03-30 02:45:50

标签: jquery coldfusion

我正在尝试更新PersonID的LastName字段。我可以传递PersonID,但我不知道传递LastName字段的语法。

$('input[name="LastName"]').live('focusout', function() {
    var PersonID = $(this).parents("tr").attr("ID");
    var LastName = $(this).val(); // todo: serialize
    $.ajax({
        url:'Remote/Person.cfc?method=UpdateLastName&returnformat=json'
        ,data:'PersonID='+PersonID
    });
    $(this).parents("td").empty().append(LastName);
});

问:是否类似于数据:{'PersonID ='+ PersonID,'LastName ='+ LastName}

我是否错过了一条曲折的线条或括号或逗号或点或冒号或分号或加号或问号或撇号或引号或美元符号或什么?

2 个答案:

答案 0 :(得分:8)

你很亲密!稍微更改它,在那里不等于并使用这样的冒号:

data: {'PersonID':PersonID, 'LastName':LastName}

如果你愿意,你也可以这样做(如果你得到一些奇怪的角色,那就不安全了)

data: 'PersonID=' + PersonID + '&LastName=' + LastName

答案 1 :(得分:1)

对于复杂的结构,如果您添加2个以上的变量:

var obj = new Object;
obj.something1 = 'something';
obj.something2 = Array();
obj.something2[1] = 'foo';
obj.something2[2] = 'bar';

//include json2.js
var objJSON =  JSON.stringify(obj);

$.ajax({
      url: "http://example.com",
      type: "GET",
      data: ({obj: objJSON , method : "UpdateLastName"}),
      contentType: "application/json; charset=utf-8",
      dataType: "html",
      success: function(msg){
         alert("Success: " + msg);
      },
      error: function(msg){
         alert("Error: " + msg);
      }
    });

在cf方面,只需做

<cfset test = deserializeJSON(arguments.obj,true) >