2016-07-27 72 views
1

嗨,我正在PHP Laravel工作,我想提交數據從模態,我想它,簡單地關閉模式後提交是成功,而不是重定向。但都沒有工作,所以在提交後我被重定向,並且在提交之後,沒有向數據庫添加數據。提交的數據沒有得到存儲在數據庫中,我得到提交後重定向

因此,填寫表單中的數據後,按下提交,它將我重定向到\頁面,我檢查數據庫,沒有添加任何內容。但我可以從中提取數據,所以它不是連接或配置。

我希望在提交後保持同一頁面,只需關閉模式(我將在稍後顯示成功)。

這是我在模態形式:

<div class="modal fade" id="myModal" role="dialog"> 
    <div class="modal-body"> 

     <form id="eventForm" method="post" action="createEvent"> 
      //a couple inputs 
      //a submit button 
     </form> 
    </div 
</div> 

這是jQuery的處理數據的提交和非重定向

$(document).ready(function() { 

$('#eventForm') 
     .formValidation({ 
      framework: 'bootstrap', 
      //icon,fields validation 
     })    
     .on('success.form.bv', function (e) { 
     e.preventDefault(); 
      var $form = $("#eventForm"), 
      url = $form.attr('action'); 
      $.post(url, $form.serialize()).done(function() { 
       $("#myModal").dialog("close"); 
      }); 
      }); 
      }); 

我的路線

route::post('createEvent' , '[email protected]'); 

控制器處理要求

public function store(Request $request) 
{ 
    $event= new event(); 

    //retrieving the data here 

    $event->name = $request->name; 
    $event->description = $request->description; 
    $event->ending_date = $request->ending_date; 
    $event->starting_date = $request->starting_date; 
    $event->assigned_to = $request->assigned_to; 
    $event->save(); 
} 

命名空間和使用是正確的,但我可以發佈它們,如果你想。 有什麼建議嗎?

更新

在developpers工具,我檢查網絡部,我發現,該請求被髮送,而僅僅302重定向,和JavaScript代碼不執行,所以其被提交爲我點擊提交按鈕。

試圖console.log的JavaScript代碼,讓我意識到它甚至沒有被執行,但仍然提交,沒有到達頁面是另一個需要解決的問題。

+0

您在開發人員工具的網絡選項卡中看到什麼? ajax請求是否正確?什麼是回報價值? – Gaurav

回答

1

你有CSRF令牌檢查嗎?如果是這樣,請要麼包含您的令牌發佈的時候,是這樣的:

<meta name="csrf-token" content="{{ csrf_token() }}"> 

,並在形式這樣一個領域:

<form method="POST" action="/profile"> 

{{ csrf_field() }} 
... 
</form> 

,或者從排除您的路線被CSRF檢查,這樣(請檢查您的VerifyCsrToken.php)

class VerifyCsrfToken extends BaseVerifier 
{ 
    /** 
    * The URIs that should be excluded from CSRF verification. 
    * 
    * @var array 
    */ 
    protected $except = [ 
     'stripe/*', 
    ]; 
} 

檢查這些Laravel Docs他們應該解釋事情更給你。

當你說它重定向到\這意味着,它檢查是否檢查,如果你是否登錄,因爲它不能檢查csrf標記(你不包括)。

修訂

至於提交,我不知道爲什麼它不停止提交,但我想

$("#formi_id").submit(function(e){ 
return false; 
}); 

或查看working example。 希望這有助於。

+0

謝謝你這爲我工作,它救了我!雖然我有一個重複的帖子,第二個獲得500個內部服務器,有關於此的任何想法? – LaravelOnly