여러 개의 체크박스 값과 다양한 입력 값을 전체적으로 데이터베이스에 저장
P粉807471604
2023-08-31 11:17:47
<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>
이는 인덱스를 기반으로 수량 필드를 정의하기 때문입니다. 하나의 입력이 누락되면 전체 결과에 영향을 미칠 수 있습니다. 값을 키로 사용:
HTML:
으아악PHP:
으아악P.S. Bhaumik이 말했듯이 Laravel에서는
$_POST
를 사용하지 마세요.