2015-09-27 3 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 Ajax проводки данных в базу данных

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 вы отправляете «токен», но Laravel ожидает, что этот параметр будет называться «_token».

Вы можете сделать это проще для себя, просто используя функцию serialize() jQuery в форме, вместо того, чтобы извлекать каждое поле в качестве переменной. Пример:

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

Вместо вар InputName, вар inputDrink и т.д.

+0

так: 'var data $ (this) .closest ('form'). Serial \t \t var token = $ ('input [name =" _ token "]'). val(); ' –

+0

Дважды проверьте, что строка 'var data'. В настоящее время вы отсутствуете =, и вам нужно позвонить «serialize()», в настоящее время просто говорит «serial». И вы также можете удалить строку «var token». В противном случае должно быть хорошо. –

+0

После попытки, он хотел представить, но все равно ничего не происходит. –

Смежные вопросы