Передача более 1 поля формы - PullRequest
2 голосов
/ 30 марта 2010

Я пытаюсь обновить поле LastName для PersonID. Я могу передать 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 ]

8 голосов
/ 30 марта 2010

Ты близко! Немного измените его, здесь нет равных и используйте двоеточие:

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

Вы также можете сделать это, если хотите (не так безопасно, если у вас появятся какие-то странные символы)

data: 'PersonID=' + PersonID + '&LastName=' + LastName
1 голос
/ 30 марта 2010

Для сложных конструкций, если вы добавите более 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) >
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...