2016-04-29 146 views
1

我有一個按鈕,像這樣顯示加載動畫在等待

{!! link_to_route('jobs.createJob', 'Create Job', $job->id, array('class' => 'btn btn-info')) !!} 

所以這條路線調用一個函數,它確實是這樣的

public function createJob(Job $job) { 
    $createJob = Helper::createNewJob($job); 
    $createJobXML = new \SimpleXMLElement($createJob); 
    if($createJobXML->Status == 'OK') { 
     $job->jobNumber = $createJobXML->Job->ID; 
     if($job->update()) { 
      $assignStaff = Helper::assignStaffToJob($job); 
      $assignStaffXML = new \SimpleXMLElement($assignStaff); 
      if($assignStaffXML->Status == 'OK'){ 
       $createQuoteForJob = Helper::createQuoteForJob($job); 
       $createQuoteForJobXML = new \SimpleXMLElement($createQuoteForJob); 
       if($createQuoteForJobXML->Status == 'OK'){ 
        $job->quoteId = $createQuoteForJobXML->ID; 
        if($job->update()) { 
         return View::make('jobs.show', compact('job')); 
        } 
       } 
      } 
     } 
    } 
    return View::make('campaigns.show', compact('job')); 
} 

因此,有去了很多關於這涉及擊球幾種將數據插入系統的API方法。這個過程有時可能需要幾秒鐘,我不希望他們能夠再次點擊提交按鈕,所以我想在這種情況下向他們展示一個加載屏幕。

如果我通過ajax發出這個請求,我可以簡單地使用ajaxStart和ajaxComplete。但是,我沒有使用ajax,那麼在Laravel 5中有另一種方法可以做到這一點嗎?所以,它的點擊時,它就會被禁用

感謝

+2

這不是Laravel的特定問題。當你處理這樣的服務器端問題時,這是語言的不可知論。 – James

+0

謝謝澄清 –

+0

您可以調用Ajax中的laravel cotroller函數,並在請求響應之前顯示等待圖像 – KubiRoazhon

回答

1

添加一個onclick處理程序的按鈕。

{!! link_to_route('jobs.createJob', 'Create Job', $job->id, array('class' => 'btn btn-info', 'onclick' => 'disableButton(this)')) !!} 

function disableButton(ele) 
{ 
    ele.disabled = true; 

    // And display loading animation here if you need. 
}