簡體   English   中英

從 laravel 中的選項 select 獲取名稱和值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM