Вопрос

Я пытаюсь обновить поле 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}

Я пропустил волнистую линию, скобку, запятую, точку, двоеточие, точку с запятой, знак плюса, вопросительный знак, апостроф, кавычку, знак доллара или что-то в этом роде?

Это было полезно?

Решение

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

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

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

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

Другие советы

Для сложных структур, если вы добавляете более двух переменных:

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) >
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top