@extends('layouts.app')
@section('content')
{{--<p>{{$news}}</p>--}}
<p class="container">
<p class="col-lg-2"></p>
<p class="col-lg-8" id="test">
<p class="form">
<input type="text" name="title" id="title" class="form-control">
<textarea name="tcontent" id="tcontent" cols="30" rows="10" class="form-control"></textarea>
<button id="submit" class="btn-primary">提交</button>
</p>
<p id="test1"></p>
</p>
</p>
<script type="text/javascript">
$(document).ready(function (){
$('submit').click(function (){
var data = {
title: $('#title').val(),
tcontent: $('#tcontent').val()
};
$.ajax({
type: "post",
url: 'news/news',
data: data,
dataType: 'json',
headers: {
'X-CSRF-TOKEN': '{{csrf_token()}}'
},
success: function(data){
console.log(data);
var test1 = '<h1> add success</h1>';
console.log(test1);
$('#test').append(test1);
},
error: function (data){
console.log(data);
var test1 = '<h1>add faild</h1>';
console.log(test1);
$('#test').append(test1);
}
});
});
});
</script>
@endsection
public function store(Request $request)
{
$user = Auth::user();
$this->validate($request,[
'title'=>'required',
'tcontent'=>'required'
]);
$news = new News();
$news->title = $request->get('title');
$news->content = $request->get('tcontent');
$news->author = $user->name;
$news->save();
return $news;
}
Auth::routes();
Route::get('/','HomeController@index')->name('home.page');
Route::group(['prefix'=>'back'], function (){
Route::resource('/news/news','News\NewsController');
Route::group(['prefix'=>'commodity', 'namespace'=>'commodity'], function (){
Route::resource('/classify','ClassifyController');
Route::resource('/commodity','CommodityController');
});
});
Le code est comme ci-dessus, rien ne se passe lorsque vous cliquez sur le bouton Soumettre et aucun enregistrement n'est inséré dans la base de données. jQuery a également été introduit dans l'en-tête de la page parent. Le code de la page, le contrôleur et les paramètres de routage sont comme ci-dessus. Je ne sais vraiment pas ce qui n'a pas fonctionné. S'il vous plaît, aidez-les
.
Le problème a été résolu
.1.$('submit') manque un numéro # et ne peut pas être récupéré. Il devrait être $('#submit')
2.url devrait être /back/news/news
L'url est mal écrite.
De plus, ouvrez le console.log et vérifiez le rapport d'erreur et vous pourrez le résoudre.
Il se peut que js n'ait pas obtenu l'objet cliqué ou soumis. Lorsque vous rencontrez des problèmes ajax, vous devez généralement vérifier la console et le réseau pour analyser s'il existe des requêtes réseau, ainsi que les informations de requête et de réponse.