[英]How to get value from select option without selected the option in Laravel
[英]Get name and value from option select in laravel
我正在使用foreach
顯示來自數據庫的選項,其值如下:
<select name="location[]" data-placeholder="Search Location" multiple class="chosen-select">
<?php foreach ($location as $key): ?>
<option value=""></option>
<option value="{{$key->id}}">{{$key->name}}</option>
<?php endforeach; ?>
</select>
我想將{{$key->name}}
和{{$key->id}}
都傳遞給我的 controller 以獲得這樣的響應{'name':'city', 'id': '2'}
。
現在我只使用這種方法將{{$key->id}}
傳遞給 controller 的常用方法:
$loc = $request->location;
$i = 0;
foreach ($loc as $value) {
if ($value == true) {
$date_opt[] = [
"id" => $value,
];
}
$i++;
}
return $date_opt;
但不知道如何傳遞{{$key->name}}
。
我應該將{{$key->name}}
放在另一個表中還是有任何可能的方法?
在一般實踐中,最好不要發送此信息,然后根據通過 select 提供的名稱保存它,而是只發送id
,然后建立可以通過名稱提取的關系或/並將名稱直接存儲到如果有意義的話,通過獲取POST
方法上的關系並直接從數據庫中保存名稱來創建該表。
但是,如果您出於某種原因需要在請求中存儲名稱,這里有幾種方法可以完成。
你可以看看使用 arrays 去某個地方,但我不確定這是否是你要找的
<option value="location[{{ $key->id }}][{{ $key->name }}]" />
我必須檢查,但我不確定你是否需要這樣做:
<option value="[{{ $key->id }}, {{ $key->name }}]" />
但不確定它是否會以非常有用的方式出現在您的 controller 中,這是另一種方法
<option value="{{ $key->id }}:{{ $key->name }}" />
然后在你的 controller 中用:
來分解值,在那種情況下這可能會更容易。
$parts = explode(':', $value);
$id = $parts[0];
$name = $parts[1];
在模板中放置以下內容:
<select name="location[]" data-placeholder="Search Location" multiple class="chosen-select">
<?php foreach ($location as $key): ?>
<option value=""></option>
<option value="{{$key->name}},{{$key->id}}">{{$key->name}}</option>
<?php endforeach; ?>
</select>
在 controller 中放置以下代碼:
$loc = $request->location;
$i = 0;
foreach ($loc as $value) {
if ($value == true) {
$data_arr = explode(',', $value);
$date_opt[] = [
"name" => $data_arr[0]
"id" => $data_arr[1],
];
}
$i++;
}
return $date_opt;
還有其他方法可以實現,但根據您提供的代碼,這是簡單的解決方案。
將兩個數據作為值發送:
<option value="{{$key->id .'-'.$key->name }}">{{$key->name}}</option>
在 controller 中執行此操作
$location = explode("-", $request->input('location'));
然后 $location[0] - 持有 ID,$location[1] 持有 NAME
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.