Ich bin neu in jquery und versuche, Funktionen zu machen, die meine Datenbank mit einem Dialogfeld aufrufen und aktualisieren. Ich habe eine vorhandene Vorlage geändert, um den folgenden Code zu erzeugen, und kann nicht die Funktion savefee aufrufen, die von der jquery-Funktion aufgerufen wird. Es gibt keine Fehler in meiner Javascript-Konsole. Jede Hilfe wird geschätzt.Jquery arbeitet nicht mit callfusion cfc
`
<cfset getfees = new artservice().getfees()>
<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.9.2/jquery-ui.min.js"></script>
<script>
$(document).ready(function() {
$(".artdiv").click(function() {
var initialDiv = this;
//based on which we click, get the current values
var feeid = $(this).data("fee_id");
var feetitle = $("h2", this).text();
// set form values
$("#fee_id").val(feeid);
$("#fee_title").val(feetitle);
$("#editForm").dialog({
buttons: {
"Save": function() {
var thisDialog = $(this);
$.post("artservice.cfc", {
method: 'savefee',
fee_id: $("#fee_id").val(),
fee_title: $("#fee_title").val()
},
function() {
//update the initial div
$("h2", initialDiv).text($("#fee_title").val());
$(thisDialog).dialog("close");
});
}
}
});
});
});
</script>
<style>
.artdiv {
padding: 5px;
margin: 5px;
background-color: #80ff80;
}
#editForm {
display:none;
}
</style>
</head>
<body>
<cfoutput query="getfees">
<div class="artdiv" data-fee_id="#fee_id#">
<h2>#fee_title#</h2>
</div>
</cfoutput>
<div id="editForm" title="Edit Art">
<input type="hidden" id="fee_id">
<p>
<b>Name:</b><br/>
<input type="text" id="fee_title">
</p>
</div>
</body>
</html>
`
CFC ist unter
`
<cffunction name="getfees" access="public">
<cfquery datasource="dsn" name="getfees" maxrows="10">select fee_id, fee_title from table</cfquery>
<cfreturn getfees>
</cffunction>
<cffunction name="savefee" access="public">
<cfargument name="fee_id" required="yes">
<cfargument name="fee_title" required="yes">
<cfquery datasource="dsn">update table set fee_title = '#arguments.fee_title#' where fee_id = #fee_id#</cfquery>
</cffunction>
`
Fehler war mit dieser Funktion in Application.cfc „Das ARGS Argument an die Funktion übergeben onCFCRequest ist nicht vom Typ string“
public void function onCFCRequest(required string cfcname, required string method, required string args) {
return;
}
Inspect AJAX-Anfrage in der Browser-Konsole ... wird es gemacht? Ist der Status 200? korrekte Daten gesendet? ... scheint kein cfoutput zu sein ... sollte es sein? Konsole wird dazu beitragen, Server- und Client-Probleme einzugrenzen – charlietfl
Ja AJAX-Anfrage wird gestellt. Der Status ist 200. Ich erhalte einen Fehler bei der Antwort "Das ARGS-Argument, das an die onCFCRequest-Funktion übergeben wurde, ist nicht vom Typ string", der sich in meiner application.cfc-Datei befand (getrennt von dieser). Code ist unten. Ich habe die Funktion auskommentiert und es funktioniert jetzt gut. Ideen, warum das passiert ist. '\t public void function onCFCRequest (erforderliche Zeichenfolge cfcname, erforderliche Zeichenfolgenmethode, erforderliche Zeichenfolgenargumente) { \t \t \t zurückgeben; \t} ' – eduski
vorschlagen aktualisieren Frage mit Fehler ... persönlich bin ich mehr Front-End, Coldfusion, vor allem CFC, ist nicht meine Stärke. Kann aber einen gemeinen '' Tag schreiben! .... praktisch für Ajax manchmal –
charlietfl