Quantcast
Viewing all articles
Browse latest Browse all 87

【PHP】リクエストセッションの値が取得出来ないことがあるパターン【Laravel】

同僚がハマっていたのでヘルプで入って見たらこうなってたよ っていうメモ

問題

コントローラーで保存したはずのリクエストセッションが取得出来ない。
(そもそも保存出来てない?)

コード

hoge.blade.php
@extends('base')@section('content')<form><inputtype="text"name="name"><inputtype="text"name="age"><buttontype="button"onclick="postNext()">Next</button>
</form>@endsection@section('js')<scripttype="text/javascript"src="js/hoge.js"></script>
@endsection

hoge.js
functionpostNext(){$('form').attr('action',postUrl);$('form').submit();}

色々と端折っているものの、正常に動く形です。

原因

chromeのdeveloper toolsでNextを押下した時のNetworkタブを確認していたら画面遷移直前でerrorのpostを発見。

継承しているbase.blade.phpの中に<form> ~ </form>が存在していた。
その状態でタグ指定でsubmitしていたため、正常なsubmitと不正なsubmitを同時に行っていた。
(成功するパターンもあったのが、ここら辺の判断をどうやっているかまでは追っていない)

修正

本来postされるべきformにIDを付けてJSファイルをタグ指定ではなく、ID指定でsubmitするようにした。

あとがき

同僚がなぜこのような実装したかまでは言及していない。(めちゃくちゃ切迫したスケジュールの中で頑張ってるので聞けなかった)
個人的にはjsでsubmit記述する必要があるのかな?とも思った。

submit前に処理を入れたかったとしても以下の形で良い気がする

$('#hoge_form').submit(function() {
  ~
});

あんまりこういう事はないと思うけど、一体験談として。


Viewing all articles
Browse latest Browse all 87

Trending Articles