@csrf
將多個複選框的值和不同的輸入值作為一個整體保存到資料庫中-PHP中文網路問答
將多個複選框的值和不同的輸入值作為一個整體保存到資料庫中
P粉807471604
P粉807471604 2023-08-31 11:17:47
0
1
395

我正在嘗試將資料/值插入我的資料庫中。

它可以工作,但問題是每次我只選擇第二個值/複選框時,它的其他輸入值會得到第一個輸入的值。

@csrf

JasminBooks

KnowHowBooks

這是我的控制器函數的程式碼

public function reservation(Request $request) { $data = new reservation; $data->name = $request->name; $data->email = $request->email; $data->phone = $request->phone; $data->address = $request->address; $data->date = $request->date; $data->time = $request->time; $products = null; $checked_array = $_POST['prod_name']; foreach($_POST['prod_name'] as $key => $value) { if (in_array($_POST['prod_name'][$key], $checked_array)) { $products .= $_POST['prod_qty'][$key]." ".$_POST['prod_name'][$key].", "; } } $data->products = $products; $data->save(); return redirect()->back(); }

  1. 我選擇第一個複選框並輸入數量為5的值時,結果是“5 JasminBooks,”

  2. 當我同時選擇兩個複選框並在第一個複選框旁邊的第一個輸入框中輸入數量為12,在第二個複選框旁的第二個輸入框中輸入數量為7時,結果是「12 JasminBooks,7 KnowHowBooks,」
  3. 但是當我只選擇第二個複選框並在數量輸入框中輸入13時,結果是“1 KnowHowBooks,”它取了第一個輸入的預設值,而不是我在第二個輸入框中插入的數量13。

我應該在我的程式碼中添加/更改什麼?

P粉807471604
P粉807471604

全部回覆 (1)
P粉587780103

這是因為你是根據索引來定義你的數量欄位的。如果一個輸入缺失,可能會影響你的整個結果。使用值作為鍵:

HTML:

JasminBooks

PHP:

$products = ''; $checked_array = $request->input('prod_name', []); $quantities = $request->input('prod_qty', []); foreach ($checked_array as $value) { if (array_key_exists($value, $quantities)) { $products .= "{$quantities[$value]} {$value}, "; } } // 移除末尾的 ', ' if (! empty($products)) { $products = substr($products, 0, -2); } $data->products = $products;

P.S. 像 Bhaumik 說的那樣,在 Laravel 中不要使用$_POST

    最新下載
    更多>
    網站特效
    網站源碼
    網站素材
    前端模板
    關於我們 免責聲明 Sitemap
    PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!