Php 从laravel中的选项选择获取名称和值
我使用Php 从laravel中的选项选择获取名称和值,php,laravel,Php,Laravel,我使用foreach显示来自数据库的选项,其值如下: <select name="location[]" data-placeholder="Search Location" multiple class="chosen-select"> <?php foreach ($location as $key): ?> <option value=""></option> <option value="{{$key->
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->name}}
放在另一个表中,或者有任何可能的方法吗?通常最好的做法是不发送此信息,然后根据通过select提供的名称进行保存,而是只发送id
,然后通过POST
方法获取关系并直接从数据库保存名称(如果有意义的话),建立可以通过名称提取或/和直接将名称存储到该表中的关系
但是,如果出于某种原因需要在请求中存储名称,这里有几种方法
你可以考虑使用数组来达到目的,但我不确定这是否就是你想要的
<option value="location[{{ $key->id }}][{{ $key->name }}]" />
在模板中放置以下内容:
<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>
还有其他方法可以实现,但根据您提供的代码,这是一个简单的解决方案。将两个数据作为值发送:
<option value="{{$key->id .'-'.$key->name }}">{{$key->name}}</option>
然后$location[0]-保存ID,$location[1]保存NAME{{{$key->NAME}}
试试这个你可以打印($value);出口在这里粘贴?
<option value="{{ $key->id }}:{{ $key->name }}" />
$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>
$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>
$location = explode("-", $request->input('location'));