2013-01-23 20 views
0

我使用原生joomla代碼的模式窗口。我正在顯示一個表格wihchi用於將郵件從一個用戶發送到另一個用戶。 php,css和js代碼都在tmpl文件(通過使用JDocument)的視圖和js是這樣的;joomla模式窗口內的jquery ajax請求

var $j = jQuery.noConflict(); 
$j(document).ready(function(){ 
    $j("#sendMail").click(function(){ 
     if(document.formvalidator.isValid(this.form)){ 
      $j("#mailSending").css("display","inline-block"); 

      $j.ajax({  
       type: \'POST\', 
       url: \'index.php?option=mycomponent&tmpl=component&view=members\', 
       data: $j("form#mailForm").serialize(), 
       success: function(data,xhr,status){ 
          $j("#mailSending").css("display","none"); 
          $j("#mailMsg").css("display","inline-block"); 
          setTimeout(function(){window.parent.SqueezeBox.close()},1000); 
          alert(status); 
         } 
      }); 
     }else{ 
      $j("#mailMsg").text("'.JText::_('OFFER_EMPTY_FIELDS').'").css("display","inline-block").delay(1000).fadeOut("slow"); 
     } 
    });     
});'; 

我跟蹤與螢火蟲的XHR當我通過靶向點擊功能加載圖標顯示和控制器的執行文件中的任務。 PHP文件就這樣結束;

$send =& $mailer->Send(); 
    if ($send !== true) { 
     echo 'Error sending email: ' . $send->getMessage(); 
    } else { 
     echo 'Mail sent'; 
    } 
    exit(); 

雖然php函數過程結束模態窗口內的內容是隨郵件發送而改變的。但我想隱藏加載.gif並顯示一條消息。但代碼不這樣做。任何想法 ?

+0

你檢查了控制檯嗎?有沒有錯誤顯示? – Techie

+0

有一個代碼,它每15秒重複一次其他ajax請求,並且它工作正常,但是當我從iframe中觸發此代碼時,螢火蟲的net選項卡似乎永遠不會結束。 ı看konsol,並reuqests負責和html標籤從CONSOL標籤是相關的請求沒有顯示。而在標題選項卡響應標題不是英文也我的Firefox不是英語我認爲他的標籤名稱翻譯是明白的。 – freezer

+0

最初加載gif和消息是隱藏的。雖然我點擊顯示按鈕gif。 – freezer

回答

0

代碼發送形式Ajax和插入它返回的值到一個div

jQuery(function($) { 
    $("form[name='srchForm']").submit(function(){ 
     $.get($(this).action, $(this).serialize() + "&tmpl=component&limitstart=0", function(data){ 
      $m =$('#main'); 
      $m.html(data).delay(10); 
     }); 
     return false; 
    }); 
}); 
+0

我試過這個謝謝,但我不明白爲什麼我的代碼錯了我發現我的使用類型更容易和controllabe。我應該在何處放置代碼以便在請求開始時加載gif結束代碼隱藏它的位置。我需要在成功後關閉SqueezBox。我有點困惑。 – freezer

+0

經過一些試驗後,我明白你的意思是提交事件更有用:)我瞭解阻止傳統事件。然而get方法還沒有讓人困惑。感謝名單。 – freezer

0

很有趣的是我愛李嘉圖的使用jQuery,而不是這個「附加$ J(文件)。就緒(函數() {})「但重點是我認爲用於觸發ajax的按鈕不是設置按鈕類型的按鈕,而是沒有屬性。我認爲它會嘗試Ajax和正常提交過程,並且會造成混淆。

感謝您的幫助和抱歉,我的愚蠢的錯誤。