[英]Laravel - multiple selection and saving to database
我有這個用於汽車帖子的小項目。 我發布了我的帖子,所以一切正常,但現在我需要有多個選擇。 所以這是我的PostsController
:
...
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
$this->validate($request, [
'title' => 'required',
'brand' => 'required',
'model' => 'required',
'age' => 'required',
'cc' => 'required',
'hp' => 'required',
'body' => 'required',
'fuel' => 'required',
'safety' => 'required'
]);
$post = new Post;
$post->title = $request->input('title');
$post->brand = $request->input('brand');
$post->model = $request->input('model');
$post->age = $request->input('age');
$post->cc = $request->input('cc');
$post->hp = $request->input('hp');
$post->body = $request->input('body');
$post->fuel = $request->input('fuel');
$post->safety = $request->input('safety');
$post->save();
return redirect('/home')->with('success', 'Your post is posted!');
}
...
現在這是我的createpost.blade.php
:
...
<div class="column">
<label for="safety">Safety:</label></br>
<select class="form-control" name="safety">
<option value="" disabled selected>Select your option</option>
<option value="diesel">ABS</option>
<option value="gasoline">ESP</option>
<option value="electric">CHILD LOCK</option>
<option value="electric">AirBAG</option>
</select>
</div>
...
我怎樣才能使這個選擇輸入用於多項選擇,並且所有選擇都需要保存到我的數據庫中? 我有我的Post.php
模型:
...
class Post extends Model
{
protected $table = 'posts';
protected $primaryKey = 'id';
}
如果有人對此有解決方案,請幫忙? 或一些教程或任何類似的幫助!
嘗試一些多選庫
Select2就是其中之一
在您的blade.php 文件中使用數組並使用多個
<select class="form-control" name="safety[]" multiple>
在控制器中
$post->safety = implode(',', $request->input('safety'));
您可以在blade
文件中使用checkbox
$("input:checkbox").click(function(e){ console.log(e.target.checked ? e.target.value : e.target.value+' is unchecked') });
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div> <label for="safety">Safety:</label></br> <input type="checkbox" value="ABS" name="safety[]" />ABS <input type="checkbox" value="ESP" name="safety[]" />ESP <input type="checkbox" value="CHILD LOCK" name="safety[]" />CHILD LOCK <input type="checkbox" value="AirBAG" name="safety[]" />AirBAG </div>
並從控制器中的$request
檢索您的數據,如下所示:
$request->input('safety') // return an array with all checked value, e.g: ['ABS','ESP']
在選擇標簽中添加多個屬性
改變
<select class="form-control" name="safety[]">
到
<select class="form-control" name="safety[]" multiple>
這將讓您選擇多個選項。 用戶必須使用 control/cmd 鍵來選擇多個選項
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.