2
2

More than 3 years have passed since last update.

フォームの書き方いろいろ

Posted at

前提条件

  • laravelで書いています。
  • blade.phpの書き方

一般的なフォーム

フォームの中に、サーバーに送りたいデータ(inputタグ)があって、それをbuttonタグでサブミットしている。

<form action="{{ route('create') }}" method="post">
    @csrf
    <div class="md-form">
      <label for="name">名前</label>
      <input  class="form-control" type="text" id="name" name="name" value="{{ old('name') }}" required>
    </div>

    <button class="btn btn-block" type="submit">送信</button>
</form>

ボタンを外出ししたもの。

formタグをblade.phpの下の方にまとめておいて、どのフォームとどのボタンが連携しているのかを

<form id="buttonタグのform属性と同じ名前"></form>
<button form="formタグのidと同じ名前">送信</button>

formタグの、id属性
buttonタグのform属性
で連携させているもの。


<form id="buttonタグのform属性と同じ名前" action="{{ route('hoge') }}" method="post">
    @csrf
    <div class="md-form">
      <label for="name">名前</label>
      <input  class="form-control" type="text" id="name" name="name" value="{{ old('name') }}" required>
    </div>
</form>

<button form="formタグのidと同じ名前" class="btn btn-block" type="submit">送信</button>

formタグ、inputタグ、buttonタグをそれぞれ別にしたもの。

一つの画面で、何箇所もボタンがあったり
登録するデータの量が膨大なとき
以下のように書いている現場があった。

formタグ、inputタグ、buttonタグをまとめるのではなく、
別々にすることで、コードを見やすくすることが目的。

書き方の雛形としては、こう。



<button form="formタグのidと同じ名前" class="btn btn-block" type="submit">送信</button>


<form id="buttonタグのform属性と同じ名前" action="{{ route('hoge') }}" method="post">
    @csrf
</form>

<input form="formタグのidと同じ名前" type="text" id="name" name="name" value="{{ old('name') }}" required>


なにか登録用のデータを流したいんだとしたら、自分ならこうする。(その現場に合わせるなら)



<button form="store" class="btn btn-block" type="submit">保存</button>

<button form="search" class="btn btn-block" type="submit">検索</button>


<form id="store" action="{{ route('store') }}" method="post">
    @csrf
</form>
<form id="search" action="{{ route('search') }}" method="post">
    @csrf
</form>

<input form="store" type="text" id="name" name="name" value="{{ old('name') }}" required>
<input form="store" type="text" id="email" name="email" value="{{ old('email') }}" required>
<input form="store" type="text" id="address" name="address" value="{{ old('addless') }}" required>
<input form="store" type="text" id="tel" name="tel" value="{{ old('tel') }}" required>
<input form="search" type="text" id="hoge" name="hoge" value="{{ old('hoge') }}" required>
<input form="search" type="text" id="fuga" name="fuga" value="{{ old('fuga') }}" required>


2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2