Передача более 1 поля формы
-
23-09-2019 - |
Вопрос
Я пытаюсь обновить поле 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) >
Не связан с StackOverflow