Ajax の新機能。単純な ajax/cfc 投票 yes/no アプリを実行しようとしています。うまくいかない
私が達成しようとしているのは、各リンクの横に投票数が表示される単純な投票「はいまたはいいえ」アプリです。例えば:
- はい (882票)
- いいえ (163 票) .
訪問者が投票すると、データベースが投票で更新され、別のテーブルに投票者が記録されます (再度投票できないようにするため)。最後に、新しい投票数とともに確認メッセージが表示されます。
- あなたが「はい」に投票し た (883 票)または
- あなたは反対票を投じました( 164 票)
これで、データベースの更新以外はすべて機能しました。($.ajax)
ajax 部分に応答メッセージを追加して移動することで、JavaScript (AJAX) を作り直して CFC を呼び出してみました。しかし、今ではまったく機能していません。私は何を間違えましたか?
以下は、私が思いついた新しいコードです。この質問を簡単にするために、「いいえ」の投票部分だけを示しています。私は正しい軌道に乗っていますか?これは非常に単純なように思えます。
投票リンク
<A HREF="javascript:()" onclick="VoteNoID('#IdeaID#');">
<SPAN ID="VoteNoMessage">No</SPAN>
</A>
- <SPAN ID="NewNoCount">#NoCount#</SPAN>
アヤックス
<script LANGUAGE="JavaScript">
function VoteNoID()
{
var VoteNoDescription = document.getElementById("VoteNoDescription").style.display='none';
$.ajax({
type: "POST",
url: "../CFC/VoteNo.cfc?method=VoteNoID",
data: recordata,
dataType: "html",
success: function(message) {
$('#VoteNoMessage').html("you voted No");
$('#NewNoCount').html("#NewCount#");
}
});
});
} `
<script>
投票番号.cfc
<cffunction name="NoVote" access="remote" returntype="string"
<cfargument name="VoteNo" type="string" required="yes">
<CFQUERY NAME="NoCountCK" DATASOURCE="MyDSN">
SELECT *
FROM Ideas
WHERE IdeaID = #arguments.VoteNo#
</CFQUERY>
<CFSET NewCount=#NoCountCK.NoCount#+1>
<CFQUERY NAME="UpdateNoCount" DATASOURCE="MyDSN">
UPDATE Ideas
SET NoCount = #NewCount#
WHERE IdeaID = #arguments.VoteNo#
</CFQUERY>
<CFQUERY NAME="MemberVote" DATASOURCE="MyDSN">
INSERT INTO MemberVoteRecord(IdeaID,MemberID,DatePosted,YesNo)
VALUES(#arguments.VoteNo#,#COOKIE.Member_ID#,#NOW()#,N)
</CFQUERY>
<cfreturn NewCount>
</cffunction>