現在我有一切工作,但我的CFC沒有更新數據庫。我試着改變了cfc頁面中的代碼,但是當我刷新頁面進行測試時,這隻會引發錯誤。所以我知道它正在調用cfc頁面。但是當我點擊鏈接時,除了更新數據庫之外,一切都可以使用。我做錯了什麼?cfajaxproxy/cfc數據庫更新失敗
下面是我想出的代碼。它只是Yes/No Vote App的No Vote部分。保持這個問題簡單。我在正確的軌道上嗎?這看起來應該很簡單。
投票鏈接
<A HREF="javascript:()" onclick="VoteNoID('#IdeaID#');"><SPAN ID="VoteNoMessage">I Vote No</SPAN></A> - <SPAN ID="NewNoCount">#NoCount#</SPAN>
的Ajax/cfajaxproxy
<cfajaxproxy cfc="CFC/MyCFC" jsclassname="MyCFC">
<script LANGUAGE="JavaScript">
function VoteNoID()
{
var VoteNoID = document.getElementById("VoteNoID");
var cfc = new MyCFC();
cfc.setCallbackHandler(getDataResult);
cfc.NewCount(true)
var VoteNoDescription = document.getElementById("VoteNoDescription").style.display='none';
$('#NewNoCount').html("");
$('#VoteNoMessage').html('You voted "No" with');
}
function getDataResult(result)
{
document.write(result);
}
</script>
VoteNo.cfc
<cfcomponent>
<cffunction name="NewCount" access="remote">
<cfargument name="VoteNo" 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="Member" DATASOURCE="MyDSN">
SELECT *
FROM Members
WHERE MemberID = 1
</CFQUERY>
<CFQUERY NAME="MemberVote" DATASOURCE="MyDSN">
INSERT INTO ComingSoonVote(CSID,MemberID,DatePosted,YesNo)
VALUES(#arguments.VoteNo#,#COOKIE.MemberID#,#NOW()#,N)
</CFQUERY>
<cfreturn NewCount>
</cffunction>
</cfcomponent>
編輯好了,讓所有人都保持更新。我刪除了查詢「MemberVote」(是的,它仍然在上面的代碼中,我把它留在這裏讓大家看到它),只是爲了避開錯誤,並看到如添加cfc.NewCount(true)
後,NewCount如何工作,如orangepips建議。我得到的是這個;它會更新數據庫並按照它的原樣顯示NewCount。但1秒後,頁面變白,我擁有的是NewCount顯示在左上角(沒有其他)。
Firebug什麼都沒顯示,我的意思是什麼都沒有(空白)。沒有HTML,CSS,沒有代碼。不知何故,阿賈克斯刷新,只顯示NewCount和頁面就像它試圖推動的東西。我忘了添加一些東西,以防止令人耳目一新或者是其他的東西嗎?
我需要解決這個新問題,並得到它將成員投票添加到數據庫中的「MemberVote」查詢。有任何想法嗎?
錯誤是我讓cfc做的事情,看看它是否被調用。不用擔心山姆我總是在我所有的查詢中使用cfqueryparam。只是沒有把它們放在我的例子中,因爲我想保持代碼簡單,所以有人可以看到我做錯了什麼。 我把「NewCount」變量,並解決更新數據庫中的計數,但這是儘可能工作。查詢插入仍然不起作用。我會嘗試一些不同的東西,看看我是否可以得到正確的東西。 – 2010-10-09 18:32:24