Passando mais de 1 campo de formulário
-
23-09-2019 - |
Pergunta
Estou tentando atualizar o campo LastName para PersonID. Eu posso passar pelo PersonID, mas não conheço a sintaxe por também passar o campo de nome 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);
});
P: é algo como dados: {'PersonId ='+PersonId, 'LastName ='+LastName}
Estou perdendo uma linha agradável ou parênteses ou vírgula ou ponto ou cólon ou semi-colon ou mais sinal ou ponto de interrogação ou um apóstrofo ou cotação ou sinal de dólar ou algo assim?
Solução
Você está perto! Mude apenas um pouco, nenhum igual lá dentro e use um cólon como este:
data: {'PersonID':PersonID, 'LastName':LastName}
Você também pode fazer isso se preferir (não é tão seguro se conseguir alguns personagens estranhos)
data: 'PersonID=' + PersonID + '&LastName=' + LastName
Outras dicas
Para estruturas complicadas, caso você adicione mais do que 2 vars:
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);
}
});
No lado da CF, apenas faça
<cfset test = deserializeJSON(arguments.obj,true) >
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow