2014-10-31 4 views
0

У меня есть вызов AJAX, который добавляет данные в мою базу данных ColdFusion.Обновить CFDIV на успех AJAX

<!---Script to add dashboard link --->  
      <cfoutput> 
      <script> 
      $(function(){ 
      //Add a new note to a link 
      $("##add_dashboard_links").submit(function(){ 
       // prevent native form submission here 
        $.ajax({ 
         type: "POST", 
         data: $('##add_dashboard_links').serialize(), 
         url: "actionpages/add_dashboard_link.cfm", 
         beforeSend: function(){ 
          $('.loader').show(); 
         }, 
         complete: function(){ 
          $('.loader').hide(3000); 
         }, 
         success: function() { 
          $("##noteDiv").load('templates/dashboard_notes.cfm?techID=#techID#'); 
          $("##addNoteResponse").html(''); 
          $("##link_description").val(''); 
          $("##link_url").val(''); 
          $("##notes").val(''); 
          $("##addNoteResponse").append("Link successfully added."); 
          }  
        }); 
        return false;   
       }); 
      }); 
      </script> 
      </cfoutput> 

У меня также есть CFDIV, который связывается с каким-либо другим содержанием

 <!---Dashboard Links ---> 
     <div id="noteDiv" bind="url:templates/dashboard_notes.cfm"> 
     </div> 

Вот мой модальный код, расположенный на моей странице шаблона, который содержит форму, что это ссылается скрипт AJAX (Этот плагин найти здесь https://github.com/kylefox/jquery-modal):

<!--- Link to open the modal to add a new dasboard link ---> 
     <div id="DashboardLinks" style="display:none;"> 
     <h3>Add a new dashboard link:</h3> 
     <form id="add_dashboard_links"> 
      <table width="100%" id="dashboard_table" border="0" cellpadding="5"> 

       <tr> 
       <td colspan="3"></td> 
       </tr> 
       <tr> 
       <td>Link Description:</td> 
       <td colspan="2"><input type="text" name="link_description" id="link_description" required="yes" message="Please enter the Link Description"/></td> 
       </tr> 
       <tr> 
       <td>Link URL:</td> 
       <td colspan="2"><input type="text" name="link_url" id="link_url" required="yes" validate="url" message="Please enter the Link URL with http:// -or- https://"/></td> 
       </tr> 
       <tr> 
       <td>Link Notes:</td> 
       <td colspan="2"><textarea id="notes" name="notes" cols="" rows="">&nbsp;</textarea></td> 
       </tr> 
       <tr> 
       <td colspan="3"><input type="submit" name="button" id="button" value="Add Link" /> 
      <input type="hidden" name="link_hidden" value="1"><br /> 
       <div class="loader"><img class="loading-image" src="images/loading.gif" /></div> 
       <div class="response" id="addNoteResponse"></div> 
      </td> 
       </tr> 
      </table> 
      </form> 
      </div> 

есть ли способ, чтобы обновить этот тег CFDIV когда я получаю на AJAX УСПЕХ?

Спасибо.

+0

cfdiv выполняется на стороне сервера, где, поскольку ваш запрос Ajax выполняется на стороне клиента. если вы хотите обновить этот cfdiv, вам нужно сделать еще один запрос Ajax и отменить ответ в соответствующем div –

+0

Что вам понравилось бы в новом содержимом этого div? –

+0

Я выводю данные из cfquery. Те же данные, что и мой скрипт. Поэтому я в основном пытаюсь обновить вывод из моей cfquery с помощью моей недавно добавленной записи. –

ответ

1

Не используйте cfdiv (или любые другие функции интерфейса ColdFusion). Поскольку вы уже используете jQuery, придерживайтесь этого. Используйте простой старый HTML <div> и сохраните тот же идентификатор.

<div id="noteDiv" bind="url:templates/dashboard_notes.cfm"></div> 

Затем при вызове AJAX, добавьте к этому success блоку

$("#noteDiv").load('templates/dashboard_notes.cfm'); 

Вам также нужно добавить эту строку в другом месте, чтобы получить содержание первоначально загружено.

+1

Скотт на 100% прав. Инструменты пользовательского интерфейса CF очень похожи на костыли, на которые нельзя положиться. Они поддерживают ваши первые шаги, но вы приходите сожалеть о них позже, когда они не будут делать то, что вы хотите, или требуют какой-то подтасовки и подкрепления. Иногда вы обнаруживаете, что в будущем вы попадаете в трубопровод, нажимая на костыль, чем если бы вы только научились ходить самостоятельно. –

+0

Удивительный. Я попробую и вернусь. –

+0

Это, кажется, отлично работает; Я обновил сообщение с отредактированным кодом. Есть одна небольшая проблема, хотя это возникает. На моей странице шаблона моя форма находится в модальной форме. Модаль происходит из плагина, найденного здесь [link] (https://github.com/kylefox/jquery-modal). Проблема в том, что теперь, после завершения моего скрипта, он обновляет DIV, как ожидалось, но автоматически меняет модальность, но мое окно браузера все еще имеет наложение непрозрачности. Если я затем щелкнул в любом месте, непрозрачность исчезнет. Но я все равно хотел бы иметь модальный вид, чтобы пользователь мог его закрыть. Есть идеи? –

Смежные вопросы