автоматическое предложение не может выполнить предварительный просмотр, но получить результат

#ajax #coldfusion

#ajax #coldfusion

Вопрос:

Я создаю страницу входа / выхода из системы. Я столкнулся с проблемой с автоматическим предложением. Если без приведенного ниже кода, автоматическое предложение работает со списком. Но если я добавлю приведенный ниже код, автоматическое предложение не работает, это означает, что я не могу получить список предложений. Я выполнил некоторый тест, хотя не могу получить список, результат все равно появится.

Извините, это файл для application.cfm, мое автоматическое предложение — это другой файл.

  <cfif GetAuthUser() NEQ "">

  <cfquery name="loginQuery" dataSource="Reservation">
   SELECT *
    FROM User_Customer
    WHERE Email = '#GetAuthUser()#'

    </cfquery>

<cfoutput query="loginQuery">

   <form action="#CGI.script_name#?#CGI.query_string#"  name="test" method="post"> 
    <a href="##">#First_Name# #Last_Name#</a>
    <input type="submit" Name="Logout" value="Logout">
   </form>
  </cfoutput>
 </cfif>
  

Я попытался с <cfajaximport> , но не смог его решить.

Приведенный ниже код является автоматическим предложением

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

Ответ №1:

Вы выводите HTML-форму, которая прерывает ваш вызов Ajax. Когда выполняется ajax-вызов с автоматическим предложением, он получит как HTML-форму, так и результаты, которые больше не будут в формате, ожидаемом виджетом с автоматическим предложением.

Комментарии:

1. имеется в виду изменение формы на cfform?

2. Нет. Я имею в виду, что вы ВСЕГДА распечатываете форму. ВСЕ запросы будут иметь этот код, что означает, что при выполнении вашего Ajax-запроса он возвращает HTML-форму независимо от результата ajax. Если виджет автоматического предложения ожидает, например, JSON, вместо этого он получит HTML-форму JSON. Это недопустимый JSON и он сломается. Вам нужно использовать firebug, чтобы просмотреть результат вызова Ajax. Я предложил это в вашем другом вопросе SO. Я предполагаю, что вы делаете это в своем файле Application.cfm? Application.cfm — неподходящее место для вашего выходного кода. Это будет выводиться для каждого запроса

3. Вы также должны опубликовать свой код автоматического предложения. Это поможет определить проблему.

4. Я пытаюсь переместить код с файлом так же, как с автоматическим предложением, это может сработать. Хотя я поместил основной код в Application.cfm, это лучший способ. Спасибо за ваш совет !