【发布时间】:2018-03-20 09:35:21
【问题描述】:
我正在尝试将我拥有的选择框的文本和值存储到我的数据库中。我可以通过从选择框名称本身请求它来正确存储该值,但是我在存储文本时遇到了麻烦。我有 2 个表,即 Item 和 ItemOrder。
物品表
标识 |名字
ItemOrder 表
标识 | item_id(来自项目表的 fk) |物品名称
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>
项目控制器
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 设置为可为空。我试图通过 javascript 获取文本,并且可以使用 console.log 显示它。任何人都可以帮助我存储选定的文本吗?或者有没有办法通过javascript或jquery获取文本?
【问题讨论】:
-
"或者有没有办法通过javascript或者jquery获取文本" 你已经通过javascript获取了文本,即
itemText。如果您需要保存它,只需将其与您用于将其他信息发送到服务器的任何方法一起发送即可。 -
感谢您的回复,我对 javascript 很陌生,所以我不知道如何在方法中发送文本。我可以毫无困难地检索该值,因为我只需请求选择框的名称,它将存储该值。但是文本与值具有相同的选择框,因此请求它只会让我得到值而不是文本,我对如何获取文本感到很迷茫。
-
“我很迷茫如何获取文本”你已经在
itemText中找到了文本,正如你所说 “我可以用控制台.log”。所以做任何你需要做的事情。你实际上需要用它做什么?您所说的只是“存储它” 将它存储在哪里?在javascript的其他部分可以使用的变量中?将其传递给其他函数? -
将它存储到表 itemOrder 中,我有 ItemController 和 storeItem 函数,该函数通过请求名称为“item”的选择框的值来存储 item_id。如果可能的话,我只需要知道如何将文本从刀片视图获取到控制器。我可以显示 itemText,但我不知道在哪里传递它,所以我可以将它用于我的 storeItem 函数。也许我发现的是你所说的“在javascript的其他部分可以使用的变量中”。
-
您的 itemController 在服务器上,所以正如我在第一条评论中所说,您需要“将它与您用于将其他信息发送到服务器的任何方法一起发送” i> 这里的方法是指表单发布、Ajax 请求,以及您可能用来保存其余数据的任何内容。任何答案都需要知道该信息。虽然我必须问,如果 itemOrder 表中的
item_name与您的 Item 表中的name相同,您为什么要在这两个地方都保存它?那是数据重复,当从 itemOrder 中选择时,您可能应该只对 item 表进行 MYSQL JOIN。
标签: javascript jquery html mysql laravel