2014-03-07 37 views
1

情況是這樣的:Laravel 4:如何在不重定向的情況下顯示消息?

在我Laravel 4的應用程序,驗證後,將其重定向到顯示succesfull消息在同一頁。

它工作正常。問題在於頁面很重,所以重定向過程需要3秒。

我想要做的是在不重定向的情況下顯示消息。 爲了節省再次加載頁面所需的時間,並立即顯示消息。

這是代碼:

return Redirect::back()->with('message','<b>Congratulations! You have succesfully sent the email'); 

這是一個問題:

,能夠獲得相同的結果,即顯示一個succesfull消息,而不重定向到同一頁? 如果是,該怎麼辦?

非常感謝!

+0

你可以使用一個xajax函數。 – mercy

回答

2

我想你只能用Ajax和JavaScript這樣做,阿賈克斯發送數據,並顯示使用javascript

+1

你能舉個例子嗎? – johnnyfittizio

2

的常用方法是通過做驗證AJAX的信息。

並通過不同的響應顯示成功或失敗消息。

您可以使用本地javascript XmlHttpRequest Object或jQuery $.ajax功能...等等來做AJAX。

你可以參考以下資源:

的JavaScript XmlHttpRequest對象: http://mdn.beonex.com/en/DOM/XMLHttpRequest/Using_XMLHttpRequest.html

jQuery的$.ajax功能: https://api.jquery.com/jQuery.ajax/

+0

我可以問一個解釋嗎?現在在我的控制器中,我做了三件事:1-顯示成功的消息2-在數據庫中插入數據3-發送電子郵件。真正的驗證是用Jquery做客戶端(但是我也在服務器端做了第二次驗證)。 你的意思是通過AJAX完成所有任務,或者只是通過AJAX顯示消息?當用戶點擊SUBMIT按鈕(如果jQuery驗證成功)時,如果我使用Jquery顯示消息,你認爲如何?謝謝! – johnnyfittizio

+0

如果'2&3'也是您的驗證過程,請在ajax中完成所有操作。我通常會這樣做:1.通過Laravel載入頁面。 2.點擊submit然後發送ajax請求到其他處理控制器中的ajax的函數3.controller發送響應,類似JSON:{「status」:1} 4.根據ajax響應'status'在屏幕上放置不同的消息 –

2

要一個完整的通用例子擴大@陳津林回答,適用在Laravel:

首先,你的代碼應該沒有任何JavaScript的工作,所以你需要擴展你已有的東西。

做一個途徑聽Ajax請求(post或get哪個更適合你):

Route::post('helpers/ajax', 
array('as' => 'ajax', 'uses' => 'App\Controllers\[email protected]') 
); 

使用jQuery,你將停止表單提交的默認功能,並將其發送給你的Ajax URI

$('#yourSubmitButton').on('click', function(e){ 
    e.preventDefault(); // the form will not be submitted 
    //do whatever necessary to collect the data, or just serialize the form 
    var formdata = $('#yourForm').serialize(); 
    //perhaps validate the data, if you need, and then send by ajax 
    $.ajax({ 
    url:'helpers/ajax', 
    type:'POST', //or GET if you wish as long as its consistent with the route 
    data: formdata, 
    dataType:'json', //this is for the data you will receive from the controller 
    cache:false, 
    success:function(data){ 
    //show the "mail send message and whatnot 
    }, 
    error:function(jxhr){ 
    //handle errors 
    } }) 
    }) 

缺少的是控制器上的方法,用於接收發布數據,驗證,處理和迴應請求(最可能是json編碼數組)。

更多內容是特定於您的實施。

相關問題