Ajax新手。只是試圖做一個簡單的ajax/cfc投票是/否應用程序。不能讓它工作如何將一個onclick參數傳遞給CFC以通過AJAX更新數據庫?
我想完成的是一個簡單的投票「是或否」的應用程序,它顯示每個鏈接旁邊投的票數。例如:
- 是(882票)
- 沒有(163票)。
當訪問者投票時,數據庫應該更新並進行投票,並將投票者記錄在不同的表中(以便他們不能再投票)。最後,顯示新的投票確認消息:
- 你投票「是」(883票)或
- 您投票沒有(164票)
現在我有一切工作,但更新數據庫。我嘗試通過添加($.ajax)
並在ajax部分中移動響應消息來重新調用JavaScript(AJAX)來調用CFC。但是,現在它根本不工作。我做錯了什麼?
下面是我提出的新代碼。爲了簡化這個問題,我只顯示「No」投票部分。我在正確的軌道上嗎?這看起來很簡單。
投票鏈接
<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>
VoteNo.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>
什麼不工作?請幫助我們來幫助你。 – Henry 2010-10-07 19:37:18
基本上它不更新數據庫或傳回3條消息來改變投票狀態。舊代碼至少會更新消息並關閉描述。給出投票的外觀,但不更新數據庫。 – 2010-10-07 20:14:50