>  Q&A  >  본문

여러 개의 체크박스 값과 다양한 입력 값을 전체적으로 데이터베이스에 저장

<p>데이터베이스에 데이터/값을 삽입하려고 합니다. </p> <p>작동하지만 문제는 두 번째 값/체크박스만 선택할 때마다 다른 입력 값이 첫 번째 입력 값을 가져간다는 것입니다. </p> <pre class="brush:php;toolbar:false;"><form action="{{url('/reservation')}}" method="post"> @csrf <div class="row col-12"> <div> <p class='mybox text-dark'><input type="checkbox" name="prod_name[]" value="JasminBooks"/>JasminBooks</p> </div> <div> <입력 유형="번호" 이름="prod_qty[]" min="1"class="form-control ml-2> </div> <div class="row col-12"> <div> <p class='mybox text-dark'><input type="checkbox" name="prod_name[]" value="KnowHowBooks"/>KnowHowBooks</p> </div> <div> <입력 유형="번호" 이름="prod_qty[]" min="1"class="form-control ml-2> </div> </div> <p>이것은 내 컨트롤러 기능에 대한 코드입니다</p> <pre class="brush:php;toolbar:false;">공개 기능 예약($request 요청) { $data = 새 예약; $data->이름 = $요청->이름; $data->email = $request->이메일; $data->phone = $request->phone; $data->주소 = $request->주소; $data->날짜 = $요청->날짜; $data->시간 = $요청->시간; $제품 = 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->제품 = $제품; $data->저장(); return 리디렉션()->back(); }</pre> <p>언제</p> <올> <li>첫 번째 확인란을 선택하고 값 5를 입력하면 결과는 "5 JasminBooks"입니다.</p><p></li> <li>두 체크박스를 모두 선택하고 첫 번째 체크박스 옆의 첫 번째 입력란에 수량 12를 입력하고, 두 번째 체크박스 옆의 두 번째 입력란에 수량을 7로 입력했을 때 결과는 "JasminBooks 12권, KnowHowBooks 7권, "</li> <li>그런데 두 번째 체크박스만 선택하고 수량 입력란에 13을 입력하면 결과는 "1 KnowHowBooks"가 되어 두 번째에 입력한 값이 아닌 첫 번째에 입력한 기본값이 그대로 적용됩니다. 수량 13을 입력하세요. 입력창에 들어갑니다. </li> </ol> <p>코드에 무엇을 추가/변경해야 합니까? </p>
P粉807471604P粉807471604387일 전438

모든 응답(1)나는 대답할 것이다

  • P粉587780103

    P粉5877801032023-09-01 09:44:11

    이는 인덱스를 기반으로 수량 필드를 정의하기 때문입니다. 하나의 입력이 누락되면 전체 결과에 영향을 미칠 수 있습니다. 값을 키로 사용:

    HTML:

    으아악

    PHP:

    으아악

    P.S. Bhaumik이 말했듯이 Laravel에서는 $_POST를 사용하지 마세요.

    회신하다
    0
  • 취소회신하다