Я пытаюсь добавить ajax в мой метод laravel. Этот метод создает ответ на странице обсуждения. Он работал до Ajax, теперь я хочу добавить Ajax, чтобы сделать ответ очень быстрым! Я стек, потому что я пробовал много методов, чтобы передать $ id (обсуждение_идентификации), но никто не работает!
Я использую Laravel 5.6
мой маршрут:
Route::post('/discussion/reply/{id}', [
'uses' => 'DiscussionsController@reply',
'as' => 'discussion.reply'
]);
мой контроллер функций:
public function reply($id)
{
$this->validate(request(), [
'reply' =>'required',
]);
$d = Discussion::find($id);
$reply = Reply::create([
'user_id' => Auth::id(),
'discussion_id' => $id,
'content' => request()->reply
]);
Session::flash('success', 'Votre réponse a été enregistrer avec success');
//return redirect()->back(); // this is what i was doing doing before the ajax
return response()->json(['success'=>'réponse ajouter']);
}
мой JavaScript Ajax:
jQuery.ajax({
url: "/discussion/reply/",
method: 'post',
data: {
reply: jQuery('#reply').val(),
},
dataType: 'json',
success: function(data){
jQuery.each(data.errors, function(key, value){
jQuery('.alert-danger').show();
jQuery('.alert-danger').append('<p>'+value+'</p>');
});
}
});
и, наконец, мой бланк формы html:
<form action="{{ route('discussion.reply', ['id' => $d->id]) }}" method="POST">
{{ csrf_field() }}
<div class="form-group">
<label for="reply">Laisser une réponse...</label>
<textarea name="reply" id="reply" cols="30" rows="10" class="form-control"></textarea>
</div>
<div class="form-group">
<button class="btn pull-right" id="submit">Répondre</button>
</div>
</form>