我从选定的下拉值中有两个单独的字符串值。 喜欢
<label>Book ID</label><span class="required">*</span>
<select class="js-example-basic-single form-control" name="sel_Book">
@foreach ($books as $data)
<option value="{{ $data->BookID }}-{{ $data->BookUnitPrice }}">{{ $data->BookName }} --- {{ $data->BookUnitPrice }}</option>
@endforeach
</select>
因此在控制器中,该值从BookID-BookUnitPrice
Book = Eng11 Eng11-500
UnitPrice = 500`中以sel_Bookdropdown. So I have to separate this value and set
的形式检索,例如and
“。
代码块
$booksout -> Distributor = $request->input('sel_Distributor');
$booksout -> Book = $request->input('sel_Book');
return response()->json($request);
$booksout -> UnitPrice =
$booksout -> Quantity = $request->input('DistQuantity');
答案 0 :(得分:3)
这就是为什么您使用ID的原因。
将您选择的格式设置为:
<option value="{{ $data->BookID }}">
{{ $data->BookName }} --- {{ $data->BookUnitPrice }}
</option>
然后在获取它们时进入您的控制器:
下面的代码假定bookbookout模型具有所有字符串/数字字段:
$book_id = $request->input('sel_Book');
$book = Book::find($book_id);
if($book) {
$booksout->Distributor = $book->Distributor->Name;
$booksout->book = $book->BookName ;
$booksout->UnitPrice = $book->BookUnitPrice
$booksout->Quantity = $request->input('DistQuantity');
}
通过这种方式,您可以使用完整的book对象,而不必担心用户伪造了发送到服务器的数据。如果您希望依赖发布/获取请求中的价格,那么我可以通过欺骗价格将您的图书购买为0。
从不信任用户数据。始终尝试从您自己的受信任数据源中收集尽可能多的输入,而用户只能在其中提供产品ID和数量。
另一个说明,请考虑使用camelCase而不是StudlyCase。因此大多数程序员通常不使用$book->BookUnitPrice
来使用$book->bookUnitPrice
StudlyCase来解释类名。
答案 1 :(得分:1)
只需将其作为json有效内容发送
<option value="{{
json_encode([
'book'=>$data->BookID,
'unitPrice' => $data->BookUnitPrice
]}}">
{{ $data->BookName }} --- {{ $data->BookUnitPrice }}</option>
因此,当您在后端获取它时,您将执行json_decode($request->input('sel_Book'))
,它将输出:
[
book=> someid,
unitPrice => someprice
]
答案 2 :(得分:0)
有两种方法可以实现此目的:
如果您使用ajax将数据发布到服务器,在这种情况下,请使用2 SQLPLUS userid/password@DB @script_path1.SQL
SQLPLUS userid/password@DB @script_path2.SQL
SQLPLUS userid/password@DB @script_path3.SQL
SQLPLUS userid/password@DB @script_path4.SQL
SQLPLUS userid/password@DB @script_path4.SQL
并在其中传递不同的值,您可以使用data-attribute
或{ {1}}。
如果您使用的是表单提交,则在这种情况下,请使用唯一的分隔符(例如.attr()
或data()
)来分隔值,并在服务器端将值分隔并获得两个单独的组件。
答案 3 :(得分:0)
更好的方法是使用为值分配assign Book ID。但是,如果您不能使用它,则可以使用爆炸功能来拆分控制器中收到的值。
$array = explode("-",$request->input('sel_Book'));
$book_id = $array[0];
$price = $array[1];