Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 显示来自Laravel的Ajax响应的返回消息_Php_Ajax_Laravel_Laravel 5 - Fatal编程技术网

Php 显示来自Laravel的Ajax响应的返回消息

Php 显示来自Laravel的Ajax响应的返回消息,php,ajax,laravel,laravel-5,Php,Ajax,Laravel,Laravel 5,我有一个工作表单,它使用Laravel Collective从一个HTML表单提交到一个数据库,并提交到我的控制器,它工作得很好 我想在不重新加载页面的情况下提交它,所以我使用AJAX提交数据 我已经让它工作了,它正在向数据库写入数据,但我无法让控制器将响应返回到success页面 以下是我的脚本: 脚本: HTML: 我不能锻炼我缺少的东西 我正在学习AJAX,如果我说实话,我正在学习所有的AJAX!,但是正如我所说的,它正在成功地写入数据库,只需要通知用户它。脚本 HTML 将submit按

我有一个工作表单,它使用Laravel Collective从一个HTML表单提交到一个数据库,并提交到我的控制器,它工作得很好

我想在不重新加载页面的情况下提交它,所以我使用AJAX提交数据

我已经让它工作了,它正在向数据库写入数据,但我无法让控制器将响应返回到success页面

以下是我的脚本:

脚本:

HTML:

我不能锻炼我缺少的东西

我正在学习AJAX,如果我说实话,我正在学习所有的AJAX!,但是正如我所说的,它正在成功地写入数据库,只需要通知用户它。

脚本

HTML

将submit按钮的类型从submit更改为button

 <div class="row">
 <div class="col">
  <p class="alert alert-success" id="msg"></p>
  </div>
 </div>
<div class="row">
 <div class="col">

<!-- Start Form -->
<input type="hidden" name="csrf" value="{{csrf_token()}}" id="token">
<div class="form-group">
  <label for="recipeName">Recipe name:</label>
  <input type="text" class="form-control" id="recipeName" aria-describedby="emailHelp" placeholder="Enter recipe name">
  <small id="emailHelp" class="form-text text-muted">We'll never share your email with anyone else.</small>
</div>
<div class="form-group">
  <label for="recipeDescription">Recipe Description:</label>
  <textarea class="form-control" id="recipeDescription" rows="3" placeholder="Enter a recipe description"></textarea>
</div>
<button type="button" class="btn btn-primary btn-block btn-lg" id="submit">Submit</button>
<!-- End Form -->

在控制器中更改以下各项可以正常工作

...
$recipe->save();
$data = [
  'success' => true,
  'message'=> 'Your AJAX processed correctly'
] ;

return response()->json($data);

成功:functiondata{console.logdata-它是否返回任何内容?成功块是否正在运行?msg div是否可见?隐藏?将默认内容放入其中是否可以看到?不要淡出,成功后是否可以找到它?其中是否包含消息?向成功添加console.logdata我收到一个500服务器错误。非常好,因此它是服务器端/php/laravel问题,尝试隔离。1可能性,我认为对于ajax json请求,您只需从控制器返回一个数据数组,laravel将自动转换为json供您使用。感谢您的帮助。看起来我返回的响应不正确。如上所述,即使有上述更改,也会出现500个错误。我正在等待您的响应我在上面发布了一个解决方案。看起来我使用的教程返回的响应不正确。以下操作有效:return response->json$data;。感谢您的帮助。
public function store(Request $request)
{
    $this->validate($request, [
      'name' => 'required|max:255',
      'description' => 'required'
    ]);

    $recipe = new Recipe;

    $recipe->name = $request->name;
    $recipe->description = $request->description;
    $recipe->user_id = auth()->user()->id;

    $recipe->save();

    return Response::json(array(
      'success' => true,
      'data'   => $data
    )); 
}
  $("#submit").click(function() {
        $("#msg").show();
        var name = $("#recipeName").val();
        var description = $("#recipeDescription").val();

        $.ajax({
            type: "post",
            data: {name:name,description:description,'_token':'{{csrf_token()}}'}, 
             dataType:'json',
            url: "{{ route('recipes.store') }}",
            success:function(data){
                $("#msg").html("Recipe Saved");
                $("#msg").fadeOut(2000);

            }
        });
    });
 <div class="row">
 <div class="col">
  <p class="alert alert-success" id="msg"></p>
  </div>
 </div>
<div class="row">
 <div class="col">

<!-- Start Form -->
<input type="hidden" name="csrf" value="{{csrf_token()}}" id="token">
<div class="form-group">
  <label for="recipeName">Recipe name:</label>
  <input type="text" class="form-control" id="recipeName" aria-describedby="emailHelp" placeholder="Enter recipe name">
  <small id="emailHelp" class="form-text text-muted">We'll never share your email with anyone else.</small>
</div>
<div class="form-group">
  <label for="recipeDescription">Recipe Description:</label>
  <textarea class="form-control" id="recipeDescription" rows="3" placeholder="Enter a recipe description"></textarea>
</div>
<button type="button" class="btn btn-primary btn-block btn-lg" id="submit">Submit</button>
<!-- End Form -->
  public function store(Request $request)
  {
   $this->validate($request, [
   'name' => 'required|max:255',
  'description' => 'required'
]);

$data = 'some data';
$recipe = new Recipe;

$recipe->name = $request->name;
$recipe->description = $request->description;
$recipe->user_id = auth()->user()->id;

$recipe->save();

return Response::json(array(
  'success' => true,
  'data'   => $data
)); 
}
...
$recipe->save();
$data = [
  'success' => true,
  'message'=> 'Your AJAX processed correctly'
] ;

return response()->json($data);