J'ai une forme simple qui a plus de 100 champs. Tous ces champs sont soumis à cffunction
où j'ai le code SQL qui exécutera la requête d'insertion ou de mise à jour. Voici mon exemple de code:Comment construire des arguments dynamiques dans ColdFusion9?
var formData = $('#'+frmID).serialize();
$.ajax({
type: 'POST',
url: 'Components/MyFunction.cfc?method=userRecord',
data: formData,
dataType: 'json'
}).done(function(obj){
if(obj.STATUS === 200){
return true;
}else{
return false;
}
}).fail(function(jqXHR, textStatus, errorThrown){
alert(errorThrown);
});
Voici cffunction:
<cffunction name="userRecord" access="remote" output="true" returnformat="JSON">
<cfargument name="userID" type="string" required="true">
<cfargument name="userFName" type="string" required="true">
<cfargument name="userLName" type="string" required="true">
<cfargument name="userDOB" type="string" required="true">
<cfargument name="userGender" type="string" required="true">
<cfargument name="userAddress" type="string" required="true">
<cfargument name="userCity" type="string" required="true">
.... And there is more field in this form
<cfset fnResults = StructNew()>
//Here is SQL query for insert and update
<cfreturn fnResults>
</cffunction>
Au lieu de créer tous les arguments manuellement il un moyen d'utiliser cfloop et de recueillir tous les arguments dynamiquement? Je n'ai trouvé aucun article ou exemple. Serait-ce une bonne option ou la création d'arguments manuellement est une meilleure approche? Si quelqu'un peut aider s'il vous plaît faites le moi savoir. Je vous remercie!
Dans ce cas, ne pouvez-vous pas passer tous les champs dans une structure unique? – Vineesh
@Vineesh Comment cela va changer ce que j'ai déjà? –
@espresso_coffee passe la structure entière de la forme à la fonction, donc il n'y a qu'un argument accepté qui est une structure de tous les champs de formulaire. –