私はプロジェクトで作業しています。アプリケーションの最初のページには、ランダムな順序で投稿の1つを表示するブロックがありますが、このランダムな投稿を更新して別のものを表示するボタンもあります代わりにユーザーがページを更新する必要はありません。laravel 5.5でランダムボタンを作成する
私の質問は、そのボタンを動作させる方法です。ここで
は私のコントローラです:
public function index() {
$randomfood = Food::where('status', 1)->inRandomOrder()->take(1)->get();
return view('welcome', compact('randomfood'));
}
これが私の見解です:
@foreach($randomfood as $randfood)
<div class="col-md-2"><a href="{{ route('showrecipe', $food->slug) }}"><img src="{{url('/')}}/images/{{$randfood->image}}" class="thumbnail img-responsive" alt="food image"></a></div>
<div class="col-md-8">
<h5><a href="{{ route('showrecipe', $food->slug) }}">{{$randfood->title}}</a></h5>
{!! str_limit($randfood->description, 100) !!}
</div>
<div class="col-md-2 text-center">
<p>Don't like?</p>
<a class="bhover" href="#">Find another recipie</a>
</div>
@endforeach
UPDATE:で確認した後
JSコードは次のようにありますコンソールで
$(document).ready(function() {
$("a.bhover").click(function() {
$.ajax({
url: "{{route('food.randompost')}}",
data: {"token_": "{{Session::token()}}"}, //session token, neccesary to use POST request
type: "food",
success: function (data) {
$("#live_content").empty(); //clean the actual post
$("#live_content").append(data); // add new post from the controller
},
error: function(data){
//handle errors here
}
});
});
});
});
エラー:
SyntaxError: expected expression, got '}'[Learn More]
使用Ajaxはランダムポストをリフレッシュするために呼び出す何かをundersandしていないなら、私が知っているすべてです:あまりにもボタンのクリック操作にバインドを追加します。 –
@SagarGautamあなたはそれをやる方法を教えてもらえますか? – mafortis
データベースからランダム投稿を取得するロジックについて知っているからです。ボタンをクリックすると、javascriptのボタンクリックのイベントを検出し、ajaxを呼び出して関数を呼び出す必要があります。関数では、ランダム投稿を取得し、関数からのjsonレスポンスとしてランダム投稿を返すコードを記述する必要があります。その後、ajaxの成功関数で、jsonレスポンスのデータを使ってhtmlで現在のポストデータをリフレッシュするコードを記述する必要があります。あなたが理解したいと思っています。 –