En passant plus de 1 champ de formulaire
-
23-09-2019 - |
Question
Je suis en train de mettre à jour le champ LastName pour PersonID. Je peux passer PersonID, mais je ne sais pas la syntaxe pour passer également le champ 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);
});
Q: Est-ce est quelque chose comme des données: { 'PersonID =' + PersonID, 'LastName =' + lastname}
Suis-je manque une ligne ou gribouillis une parenthèse ou une virgule ou un point ou deux points ou point-virgule ou signe plus ou point d'interrogation ou une apostrophe ou une citation ou un dollar ou quelque chose?
La solution
Vous êtes proche! Changer juste un peu, pas égale là-bas et utiliser deux points comme ceci:
data: {'PersonID':PersonID, 'LastName':LastName}
Vous pouvez aussi le faire si vous préférez (pas aussi sûr si vous obtenez des personnages étranges cependant)
data: 'PersonID=' + PersonID + '&LastName=' + LastName
Autres conseils
Pour les structures complexes dans le cas où vous ajoutez plus de 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);
}
});
Sur le côté cf il suffit de faire
<cfset test = deserializeJSON(arguments.obj,true) >