J'ai une page qui utilise un .post à soumettre à mon cfc. Je sais que la fonction fonctionne correctement car la base de données est en cours de mise à jour mais l'alerte déclenchée est celle de l'instruction 'else'.Pourquoi mon jQuery ne reconnaît-il pas le retour de mon CFC?
Quelqu'un d'entre vous peut-il voir pourquoi mon retour ne déclenche pas l'alerte correcte? Est-ce que je ne saisis pas le retour correctement?
Certains de mes variables sont figés dans le code à des fins de test ...
Le jQuery:
$(document).ready(function() {
var theID = $('#window_one h1').attr('name').split("-")[1];
var gateway = ("001");
//Populate the form
$('#theText').attr('value', $('#window_one h1').html());
$('#texteditform').submit(function(e){
//stop the form submission
e.preventDefault()
var newText = $('#theText').val();
//CFC
$.post("cfc/engine.cfc?method=updateText&returnformat=json",
{text:newText, field:theID, gateway_id:gateway},
function(res) {
//Handle the result
if(res == "true") {
alert("worked fine");
} else {
alert("Didn't Work");
}
});
});
});
</script>
Le CFC
<cffunction name="updateText" access="remote" output="no" returntype="boolean">
<cfargument name="field" type="string" required="yes">
<cfargument name="text" type="string" required="yes">
<cfargument name="gateway_id" type="string" required="yes">
<cfquery datasource="#application.datasource#" username="#application.username#" password="#application.password#">
UPDATE gateway
SET #arguments.field# = <cfqueryparam value="#arguments.text#" cfsqltype="cf_sql_varchar">
WHERE gateway_id = #arguments.gateway_id#
</cfquery>
<cfreturn true>
</cffunction>
Quelle est la réponse exacte? Vérifiez ceci dans firebug ou fiddler. Je ne connais pas cfc mais vous avez marqué votre méthode comme étant à distance, cela signifie-t-il que le script côté serveur renvoie json enveloppé dans une fonction js (jsonp)? – redsquare
Firebug dit que la réponse est 'true' – Ofeargall
Bon, voici la solution, je pense ... Si j'écris l'instruction conditionnelle comme ceci if (response.trim() == "true") Cela fonctionne très bien. Tous les experts de ColdFusion peuvent me dire pourquoi mon retour a 10 retours en plus? – Ofeargall