Passando più di 1 campo modulo
-
23-09-2019 - |
Domanda
Sto cercando di aggiornare il campo Cognome per PersonID. Posso passare PersonID, ma non so la sintassi per anche passando il campo Cognome.
$('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);
});
D: è qualcosa di simile di dati: { 'PersonID =' + PersonID, 'Cognome =' + Cognome}
Mi sto perdendo una linea ondulata o una parentesi o una virgola o un punto o due punti o semi-colon o segno più o un punto interrogativo o un apostrofo o preventivo o il simbolo del dollaro, o qualcosa?
Soluzione
Sei vicino! Modificarlo solo un po ', non è uguale in là e utilizzare i due punti in questo modo:
data: {'PersonID':PersonID, 'LastName':LastName}
È anche possibile fare questo se si preferisce (non come sicuro se si ottiene alcuni caratteri strani però)
data: 'PersonID=' + PersonID + '&LastName=' + LastName
Altri suggerimenti
Per le strutture complesse nel caso in cui si aggiungono più di 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);
}
});
Sul lato cf basta fare
<cfset test = deserializeJSON(arguments.obj,true) >