2011-05-19 45 views
0

我正在用mySQL做ColdFusion。 我面臨綁定和自動提示功能的問題。cfapplication停止綁定/ Ajax函數?

如果只是運行這個單個文件,autosuggest或綁定工作,我可以用autosuggest得到結果。

<cfinput type="text" 
name="Name" 
maxlength="100" 
size="30" 
required="yes"       
message="Restaurant name is required!" 
validateAt="onSubmit, onServer" autosuggest="cfc:Restaurants.LookupRestaurant({cfautosuggestvalue})"> 

但之後,我添加application.cfm,開始

<cfapplication name="cfcentral" 
       sessionmanagement="true" 
       sessiontimeout="#CreateTimeSpan(0,0,30,0)#" 
       /> 
    <cfset application.dsname="suman"> 
    <cfset request.dsname="suman"> 
    <cfset session.profile=StructNew()> 

<cfif IsDefined("Form.logout")> 
    <cflogout> 
</cfif> 

<cflogin> 
    <cfif NOT IsDefined("cflogin")> 
    <cfinclude template="loginform.cfm"> 
    <cfabort> 

然後我的問題開始出現,自動提示或綁定沒有更多的功能。 有人建議我插件

<cfajaximport tags="cfform"> 

但它未能解決的問題。


我發現,如果我添加一個,並刪除下面的代碼,綁定工作。

<cfoutput query="loginQuery"> 
    <cfform action="#CGI.script_name#?#CGI.query_string#" name="test"> 
    <a href="##">#First_Name# #Last_Name#</a> 
<input type="submit" Name="Logout" value="Logout"> 

但上面的代碼對我很重要。任何人都知道解決方案可以與上面的代碼完美配合使用


這是我原來的application.cfm

<cfapplication name="cfcentral" 
     sessionmanagement="true" 
     sessiontimeout="#CreateTimeSpan(0,0,30,0)#" 
     /> 

    <cfset application.dsname="suman"> 
    <cfset request.dsname="suman"> 
    <cfset session.profile=StructNew()> 
<cfif IsDefined("Form.logout")> 
    <cflogout> 
</cfif> 
<cflogin> 
    <cfif NOT IsDefined("cflogin")> 
    <cfinclude template="loginform.cfm"> 
    <cfabort> 
    <cfelse> 
    <cfif cflogin.name IS "" OR cflogin.password IS ""> 
    <cfoutput> 
    <h2>You must enter text in both the User Name and Password fields.  </h2> 
    </cfoutput> 
    <cfinclude template="loginform.cfm"> 
    <cfabort> 
    <cfelse> 
    <cfquery name="loginQuery" dataSource="Reservation"> 
    SELECT * 
    FROM User_Customer 
    WHERE 
    Email = '#cflogin.name#' 
    AND Password = '#cflogin.password#' 
    </cfquery> 
    <cfif loginQuery.User_Customer_ID NEQ ""> 
    <cfloginuser name="#cflogin.name#" Password = "#cflogin.password#" 
    roles="#loginQuery.User_Customer_ID#"> 
    <cfelse> 
    <cfoutput> 
    <H2>Your login information is not valid.<br> 
    Please Try again</H2> 
    </cfoutput> 
    <cfinclude template="loginform.cfm"> 
    <cfabort> 
    </cfif> 
    </cfif> 
    </cfif> 
</cflogin> 
<cfif GetAuthUser() NEQ ""> 
    <cfquery name="loginQuery" dataSource="Reservation"> 
    SELECT * 
    FROM User_Customer 
    WHERE Email = '#GetAuthUser()#' 
    </cfquery> 
<cfoutput query="loginQuery"> 
    <cfform action="#CGI.script_name#?#CGI.query_string#" name="test"> 
    <a href="##">#First_Name# #Last_Name#</a> 
<input type="submit" Name="Logout" value="Logout"> 
    </cfform> 
    </cfoutput> 
</cfif> 

回答

2

最有可能的,你的Ajax調用被重定向到登錄頁面。 Firebug可以告訴你這一點。它會向您顯示Javascript中的任何錯誤,並且可以向您顯示Ajax請求的結果,該結果很可能是您的登錄表單,而不是您預期的結果,這將是CFC方法執行的結果。

我建議你使用Firebug,並找出更多關於正在發生的事情。