cfapplication остановить привязку / функцию Ajax? - PullRequest
0 голосов
/ 19 мая 2011

Я делаю ColdFusion с MySQL.Я столкнулся с проблемой с функцией 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">

Но приведенный выше код важен для меня.Кто-нибудь знает, что решение может отлично работать с кодом выше?


Это мое оригинальное приложение. 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>

1 Ответ

2 голосов
/ 19 мая 2011

Скорее всего, ваш Ajax-вызов перенаправляется на страницу входа.Firebug может сказать вам это.Он покажет вам любые ошибки в Javascript и может показать вам результаты запроса Ajax, который, скорее всего, является вашей формой входа в систему, а не ожидаемым результатом, который будет результатом выполнения метода CFC.

Я предлагаю вам использовать Firebug и узнать немного больше о том, что происходит.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...