Select 期权价值的爆炸式增长
Exploding Value from Select Option Value
现在我正在使用 Laravel 5。
我从 select 选项中获得了价值,如下所示:
select name="billing_provider" onChange="changeLanguage(this.value)"> @foreach($tests as $test)
option value="{{ $test->tax_id }},{{ $test->npi }}" name="billing_provider">
{{ $test->test_name }} </option>@endforeach </select>
这里我需要把选项值展开,存入另一个文本域值。
我该怎么做?
首先,您构建 HTML 时犯了一个错误。
<select>
有一个属性 name
,它将成为全局数组 $_GET
或 $_POST
中的键。
但是 <option>
没有属性 name
。你应该删除它。
如果你想在后端分离 billing_provider
的值 (php /w Laravel),请这样做。
在您处理表单提交的方法中:
$input = Input::get('billing_provider');
$billing_provider = explode(',', $input);
//Now $billing_provider[0] === $test->tax_id
//And $billing_provider[1] === $test->npi
或者如果您想在提交表单之前执行此操作并且您正在使用 jQuery,那么您可以这样做:
https://jsfiddle.net/17fkpqbe/
JavaScript (/w jQuery):
$(document).ready(function() {
$('select').change(function() {
$('.inputs').html('');
var $explodedVal = $(this).val().split(',');
for(i = 0; i < $explodedVal.length; i++) {
$('.inputs').append('<input value="' + $explodedVal[i]+'">');
}
});
});
HTML:
<select>
<option></option>
<option value="123,555">Some Name 1</option>
<option value="123,444">Some Name 2</option>
<option value="123,333,555">Some Name 3</option>
</select>
<div class="inputs"></div>
现在我正在使用 Laravel 5。
我从 select 选项中获得了价值,如下所示:
select name="billing_provider" onChange="changeLanguage(this.value)"> @foreach($tests as $test)
option value="{{ $test->tax_id }},{{ $test->npi }}" name="billing_provider">
{{ $test->test_name }} </option>@endforeach </select>
这里我需要把选项值展开,存入另一个文本域值。
我该怎么做?
首先,您构建 HTML 时犯了一个错误。
<select>
有一个属性 name
,它将成为全局数组 $_GET
或 $_POST
中的键。
但是 <option>
没有属性 name
。你应该删除它。
如果你想在后端分离 billing_provider
的值 (php /w Laravel),请这样做。
在您处理表单提交的方法中:
$input = Input::get('billing_provider');
$billing_provider = explode(',', $input);
//Now $billing_provider[0] === $test->tax_id
//And $billing_provider[1] === $test->npi
或者如果您想在提交表单之前执行此操作并且您正在使用 jQuery,那么您可以这样做: https://jsfiddle.net/17fkpqbe/
JavaScript (/w jQuery):
$(document).ready(function() {
$('select').change(function() {
$('.inputs').html('');
var $explodedVal = $(this).val().split(',');
for(i = 0; i < $explodedVal.length; i++) {
$('.inputs').append('<input value="' + $explodedVal[i]+'">');
}
});
});
HTML:
<select>
<option></option>
<option value="123,555">Some Name 1</option>
<option value="123,444">Some Name 2</option>
<option value="123,333,555">Some Name 3</option>
</select>
<div class="inputs"></div>