2015-09-27 38 views
0
This is my index.php 

    <div class="container"> 
    <h1>Drink A Coffee today</h1> <hr> 
     <h2>Coffee Orders</h2> 
    <ul id="orders"> 
    <p><li class="highlight"></li></p> 
    <p><li class="highlight"></li></p> 
    </ul> 

    <h4>Add a Coffee Order</h4> 

    {!! Form::open(['url' => 'index', 'method' => 'POST']) !!} 
    <div class="form-group" role="form"> 
    <p> 
     <label for="name">Name:</label> 
     <input id="name" type="text" name="name" class="form-control"> 
    </p> 

    <p> 
     <label for="drink">Drink:</label> 
     <input id="drink" type="text" name="drink" class="form-control"> 
    </p> 
    <p> 
     <button id="add-order" class="btn btn-default" type="submit">Add!</button> 
    </p> 
</div> 
{!! Form::close() !!} 
</div> 

下面是我的控制器Laravel阿賈克斯帳數據到數據庫

public function makeOrder() { 
     $post = Request::all(); 

     if (Request::ajax()) { 
     $order = new Order; 

     $order->name = $post['name']; 
     $order->drink = $post['drink']; 

     $order->save(); 
     $response = array(
     'status' => 'success', 
     'msg' => 'Option created successfully', 
     ); 

     return Response::json($response); 
     } 
    } 

//Below is my Route 

Route::post('index', '[email protected]'); 

然後我的Ajax腳本

$(document).ready(function() { 

    $('#add-order').click(function(e) { 
     e. preventDefault(); 
     //setting variables based on the input fields 
     var inputName = $('input[name="name"]').val(); 
     var inputDrink = $('input[name="drink"]').val(); 
     var token = $('input[name="_token"]').val(); 
     var data = {name:inputName, drink:inputDrink, token:token}; 

     var request = $.ajax({ 

      url: "index", 
      type: "POST", 
      data: data, 
      dataType:"html" 
      }); 

      request.done(function(msg) { 
       var response = JSON.parse(msg); 
       console.log(response.msg); 
      }); 

      request.fail(function(jqXHR, textStatus) { 
       console.log("Request failed: " + textStatus); 
      }); 
     }); 



}); 

但是,任何時候我試圖提交,沒有什麼happends當我檢查元素,我收到此錯誤「無法加載資源:服務器響應狀態爲500(內部服務器錯誤) 請求失敗:錯誤」

+1

請重新格式化這個爛攤子。 – ggdx

+0

您可以發佈您在Laravel日誌文件中獲得的任何消息嗎?這應該在存儲/日誌 –

+0

@DanWhite我認爲現在可以嗎? –

回答

0

啊,我想我現在看到它。在你的AJAX數據中,你正在發送'token',但是Laravel期待這個參數被命名爲'_token'。

只需在表單上使用jQuery的serialize()函數,而不是將每個字段作爲變量進行檢索,就可以讓自己更輕鬆。例如:

var data = $(this).closest('form').serialize(); 

相反VAR inputName,VAR inputDrink的,等

+0

像這樣:var data $(this).closest('form')。 val();' –

+0

仔細檢查'var data'行。你目前缺少一個=,你需要調用'serialize()',目前只是說'串行'。你也可以刪除'var token'行。否則應該是好的。 –

+0

嘗試後,它想提交但仍然沒有任何反應。 –