私はユーザーが自分の詳細を記入してデータベースに提出できるフォームを設計しています。ほとんどの場合、それは動作します。運転免許証クラスに関する書式の一部がありますが、動作しません。人は複数の運転免許証を持っているので、私はそれをチェックボックス欄に入れました。しかし、ユーザが2つ以上の運転免許証を選択すると、最後に選択された運転免許証のみがデータベースに現れる。したがって、Class1を最初に選択してからClass2を選択すると、データベースにClass2のみが表示されます。チェックボックスの値をデータベースに保存する
ユーザーが選択したすべての運転免許証を1つのデータベース列に含めるにはどうすればよいですか? 以下のコードを添付しました。
form.blade.php
@extends('layout.basiclayout')
@section('content')
<p>page 1/7</p>
{!! Form::open(['url' => 'form/submit']) !!}
<h3 style= 'text-decoration: underline'>PERSONAL PARTICULARS - </h3>
<div class="form-group">
{{Form::label('Name/NRIC', 'Name AS PER NRIC/PASSPORT: ')}}
{{Form::text('Name/NRIC', '', ['class' => 'form-control', 'placeholder' => 'eg: John Smith'])}}
</div>
{{-- start of Driver`s License --}}
<p>
<div class="editfield">
<div class="radio">
<span><b>Do you have a Driver`s license?</b></span>
<div id="Driver_licenseID">
<label><input type="radio" name="Driver_license" id="yesid" value="Yes" onclick="document.getElementById('Driver_license').style.display='block'">Yes</label>
<label><input type="radio" name="Driver_license" id="noid" value="No" onclick="document.getElementById('Driver_license').style.display='none'">No</label></div>
</div>
</div>
<div class="editfield" id="Driver_license" style="display:none">
<input type="checkbox" name="Driver_license_class" id="Driver_license_class1" value="Class1">Class 1
<input type="checkbox" name="Driver_license_class" id="Driver_license_class2" value="Class2">Class 2
<input type="checkbox" name="Driver_license_class" id="Driver_license_class2A" value="Class2A">Class 2A
<input type="checkbox" name="Driver_license_class" id="Driver_license_class2B" value="Class2B">Class 2B <br>
<input type="checkbox" name="Driver_license_class" id="Driver_license_class3" value="Class3">Class 3
<input type="checkbox" name="Driver_license_class" id="Driver_license_class3A" value="Class3A">Class 3A
<input type="checkbox" name="Driver_license_class" id="Driver_license_class3C" value="Class3C">Class 3C
<input type="checkbox" name="Driver_license_class" id="Driver_license_class3CA" value="Class3CA">Class 3CA <br>
<input type="checkbox" name="Driver_license_class" id="Driver_license_class4" value="Class4">Class 4
<input type="checkbox" name="Driver_license_class" id="Driver_license_class4A" value="Class4A">Class 4A
<input type="checkbox" name="Driver_license_class" id="Driver_license_class5" value="Class5">Class 5
</div>
</p>
{{-- End of Driver`s License --}}
<div class="form-group">
{{Form::submit('Next Page', ['class' => 'btn btn-primary'])}}
</div>
{!! Form::close() !!}
@endsection
移行ファイル
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreatePersonalInfosTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('personal_infos', function (Blueprint $table) {
$table->increments('id');
$table->String('Name');
$table->String('Driver_license');
$table->String('Driver_license_class');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('personal_infos');
}
}
あなたはそれuを設定する必要がコントローラ
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\PersonalInfo;
class PersonalInfoController extends Controller
{
public function submit(Request $request){
$this->validate($request,[
'Name/NRIC' => 'required',
]);
$PersonalParticulars = new PersonalInfo;
$PersonalParticulars->Name = $request->input('Name/NRIC');
$PersonalParticulars->Driver_license = $request->input('Driver_license');
$PersonalParticulars->Driver_license_class = $request->input('Driver_license_class');
$PersonalParticulars->save();
return redirect('http://formapplication.dev/page2');
}
}
foreachループまたはimplodeのコードはどこに置く必要がありますか? – Neal23
更新された回答を参照 – Boratzan
はい!できます。 ありがとうございました! – Neal23