我正在用mySQL做ColdFusion。 我遇到bind和autosuggest函数的问题。
如果只运行这个单个文件,autosuggest或bind正在运行,我可以通过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>
然后我的问题开始发生,autosuggest或bind没有更多的功能。 有些人建议我加入
<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>
答案 0 :(得分:2)
最有可能的是,您的Ajax调用被重定向到登录页面。萤火虫可以告诉你这个。它将向您显示Javascript中的任何错误,它可以向您显示Ajax请求的结果,这很可能是您的登录表单,而不是您预期的结果,这将是CFC方法执行的结果。
我建议您使用Firebug并了解更多有关正在发生的事情。