如何获取选择框的文本和值并将其存储到数据库中?

时间:2017-10-09 08:32:34

标签: javascript jquery html mysql laravel

我试图将我所拥有的选择框的文本和值存储到我的数据库中。我可以通过从选择框名称本身请求它来正确地存储该值,但是我在存储文本方面遇到了麻烦。我有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' => 'ItemController@itemLIst']);
Route::post('storeItem', ['as' => 'storeItem',
        'uses' => 'ItemController@storeItem']);

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设置为nullable。我试图通过javascript获取文本,我可以使用console.log显示它。任何人都可以帮我存储所选文本吗?或者有没有办法通过javascript或jquery获取文本?

2 个答案:

答案 0 :(得分:0)

您是否尝试过使用

"<option value=" 

保存每个选项的文本?这样您就可以检索选定的选项文本而不是某些数字代码。

答案 1 :(得分:0)

关注我的代码。

$(document).ready(function () 
{
  $('select[name="item"]').on('change', function () 
  {
  alert('Value change to ' +$(this).attr('value')+$(this).text());
   });
 });