如何获取选择框的文本和值并将其存储到数据库中?
我试图将选择框的文本和值存储到我的数据库中。我可以通过从选择框名称本身请求它来正确存储值,但是我在存储文本时遇到了麻烦。我有2个表,即Item和ItemOrder。如何获取选择框的文本和值并将其存储到数据库中?
项目表
ID |命名
ItemOrder表
ID | item_id(项目表中的fk)| ITEM_NAME
HTML
<select name="item" class="form-control select2" id ="item">
<option value="0" selected="true" disabled="true">Select Item</option>
@foreach($items as $key => $i)
<option value="{!!$key!!}">{!!$i!!}</option>
@endforeach
</select>
ItemController
public function itemList()
{
$items = Item::lists('name', 'id');
return view('employee.itemList', compact('items'));
}
public function storeItem(Request $request){
$info = array('item_name'=>$i,
'item_id'=>$request['item'],
DB::table('itemOrder')->insert($info);
return redirect()->route('dashboard');
}
路线
Route::get('itemList', ['as' => 'itemList',
'uses' => '[email protected]']);
Route::post('storeItem', ['as' => 'storeItem',
'uses' => '[email protected]']);
JS
$('select[name="item"]').on('change', function() {
var e = document.getElementById("item");
var itemText = e.options[e.selectedIndex].text;
console.log(itemText);
});
我可以将item_id值存储在我的数据库中,因为我在此期间将item_name设置为空。我试图通过JavaScript获取文本,我可以用console.log显示它。任何人都可以帮我存储选定的文本?或者有没有办法通过javascript或jquery获取文本?
你有没有试过用
"<option value="
持有每个选项的文本?这样,您可以检索选定的选项文本,而不是一些数字代码。
感谢您的回应,选项值是$ key,它是项目的item_id,这就是我获取item_id以传入数据库的位置。 $ m是项目的文本,但我不知道如何获取该值以存储到我的数据库中。 –
能否打印$项目阵列。您可以写这个@foreach($的项目,如$密钥=> $ⅰ) ”> {!! $ I !! } @endforeach – Jinesh
按照我的代码。
$(document).ready(function()
{
$('select[name="item"]').on('change', function()
{
alert('Value change to ' +$(this).attr('value')+$(this).text());
});
});
谢谢你的回应,我想你的代码,它提醒“的值更改为未定义”和它下面列出的所有的项目名称。 –
因为你的期权价值未创建就是为什么它显示未定义 – Jinesh
我不知道,如果我跟着你,但不是我的选择框从我的foreach变量$项目的价值?或者我做错了吗? –
_“还是有办法让文本通过JavaScript或jQuery的” _你已经检索通过JavaScript的文本,即'itemText'。如果您需要保存它,只需将它随同您用来将其他信息发送到服务器的任何方法一起发送。 –
感谢您的回复,我对javascript很陌生,所以我不知道如何发送方法中的文本。我没有检索值的问题,因为我只需要请求选择框的名称,它将存储该值。但是文本与选择框的值相同,所以请求它只会让我获得值而不是文本,但我很担心如何获取文本。 –
_“我很迷茫,如何获取文本”_你已经在'itemText'中有文本,正如你所说的“我可以用console.log显示它”_。所以,无论你需要做什么,都可以做。你真的需要用它做什么?你所说的只是_“存储它”_存储它在哪里?在JavaScript的其他部分可以使用的变量中?将它传递给其他函数? –