前提・実現したいこと
※マーク私は初めてポートフォリオを制作している独学プログラミング初心者です。????
Laravelで学習ゲームができるサイトを作っています。
ログインユーザーの最高得点をDBに保存し、さらにそれを上回る点数を随時更新していく機能を実装したいと考えています。
しかし、ゲームの主な機能(正誤判定、点数計算など)をjavascriptで書いてしまっていて、phpと連携してデータを受け渡しする必要があります。
[php側でする事]
LaravelのAuth::userでuserの最高得点を取得←OK
[javascript側]
phpから最高得点をもらい、実際にプレイしたゲームの点数と比較、超えた場合は新しい最高得点を更新するためにphpに点数を送る(もしくはjavascriptでデータベースにアクセスして保存)
phpで取得した最高得点をjavascriptに送ることはjsonを使ってできました。
その後のデータベースへの保存のやり方がわかりません。
教えていただきたい事
上の機能実装するためにはどんな手法を取るのが簡単で推奨されるのかを教えて頂きたいです。
具体的には、javascript側で計算された点数を、(phpからjsonで渡ってきた)過去最高得点と比較し、最高得点を更新した場合にデータベースを更新する機能の実装方法が知りたいです。
試したこと
phpからjsonでjavascriptに最高得点を渡す
php
1//データベースからのユーザー情報取得 2$recordScore = $user->recordScore; 3 4//jsonでjavascriptに渡す 5<script> 6const recordScore = json($recordScore); 7</script>
javascriptでcookieに最高得点を保存
javascript
1if(recordScore < ゲームで記録した点数){ 2 let recordScore = ゲームで記録した点数; 3 4 //cookieに保存 5 document.cookie = "brain_calculate_recordScore=" + recordScore; 6 }
phpでcookieからデータベースに保存
php
1@if(isset($request->cookie['brain_calculate_recordScore'])) 2 @php 3 //2回目のプレイのため、jsonで渡す値を更新する役割 4 $recordScore = $request->cookie['brain_calculate_recordScore']; 5 @endphp 6@endif
上記のやり方は、phpがcookieにアクセスするためににページをリロードする必要があるため、うまくいきませんでした。
補足情報(FW/ツールのバージョンなど)
他にも、調べたところAjaxを使ったやり方やjavascriptから直接アクセスする方法もあるっぽいことが分かったのですが、内容がよくわからなかったのと、自分の状況にあっているかが知りたかったため、質問させていただくに至りました。
初心者ですので至らない質問かもしれません。お優しくご回答いただけるとありがたいです。よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/31 15:11
2020/08/01 05:33
2020/08/01 06:48