orderlist.php 배송업체를 여러개 저장하려고 합니다. 채택완료
orderlist.php의 배송업체를
$baedal = explode("|",$row['od_delivery_company']); $baedal_0 = $baedal[0]; $baedal_1 = $baedal[1]; $baedal_2 = $baedal[2];
?>
이렇게 쪼개서 od_delivery_company에
대한통운|롯데택배|한진택배 ->이런식으로
여러개를 저장하려고 하는데
orderlistupdate.php 에서
아래처럼 하였는데, 저장이 안되네요. 조갠 값을 다시 배열로 저장하니 문제가 되는 것 같아요.
이런경우 어떻게 처리해야 되나요? 도움 부탁 드립니다.ㅜㅜ
$baedal_0 = isset($_POST['baedal_0'][$k]) ? clean_xss_tags($_POST['baedal_0'][$k], 1, 1) : ''; $baedal_1 = isset($_POST['baedal_1'][$k]) ? clean_xss_tags($_POST['baedal_1'][$k], 1, 1) : '';
$baedal_2 = isset($_POST['baedal_2'][$k]) ? clean_xss_tags($_POST['baedal_2'][$k], 1, 1) : ''; $delivery_company = "$baedal_0|$baedal_1|$baedal_2";
답변 2개
배송업체가 늘었다 줄었다 할 수 있을 것이라고 가정하면
input의 name을 array(baedal[])로 해서 전송하시고
합치실 때 php->implode로 합치시면 될거에요
답변에 대한 댓글 7개
[code]
<input type="text" name="baedal[]" value="<?=$baedal[0]?>" class="frm_input" size="5">
<input type="text" name="baedal[]" value="<?=$baedal[1]?>" class="frm_input" size="5">
<input type="text" name="baedal[]" value="<?=$baedal[2]?>" class="frm_input" size="5">
[/code]
orderlistupdate.php
[code]
$delivery_company = implode('|',$baedal);
[/code]
orderlistupdate.php에서 print_r($baedal) 로 array로 잘 들어오는지 확인해 보시구요
for($i = 0; $i < count($baedal); $i++)을 이용해서 clean_xss_tags를 돌리고...
말씀하신대로 하니, 잘됩니다. 각각의 상품에 저장되게 하려면
for ($i=0; $i<$count_post_chk; $i++) 안으로 들어가야 하는데
for문 안으로는 어떻게 넣어야 될까요?
이런식으로 이름을 분기해줘야 해요
그러면 implode구간도 $delivery_company = implode('|',$baedal[$i]); 이런식으로 바뀌어야 하구요
말씀하신대로 아래처럼 적용하니 각 상품마다 저장이 잘 됩니다. 그런데 이상하게
제가 상품1에 1|2를 넣고 상품2에 3|4를 넣었는데, 상품1에 1|3이 저장되고 상품2에 2|4가
저장이 되어요.
<input type="text" name="baedal[<?=$b?>][]" value="<?=$baedal[$b]?>" class="frm_input" size="5">
$delivery_company = implode('|',$baedal[$k]);
[code]
상품1
<input type="text" name="baedal[]" value="<?=$baedal[0][0]?>" class="frm_input" size="5">
<input type="text" name="baedal[]" value="<?=$baedal[0][1]?>" class="frm_input" size="5">
<input type="text" name="baedal[]" value="<?=$baedal[0][2]?>" class="frm_input" size="5">
상품2
<input type="text" name="baedal[]" value="<?=$baedal[1][0]?>" class="frm_input" size="5">
<input type="text" name="baedal[]" value="<?=$baedal[1][1]?>" class="frm_input" size="5">
<input type="text" name="baedal[]" value="<?=$baedal[1][2]?>" class="frm_input" size="5">
[/code]
이런식으로 되어 있어야 하구요
implode하시기 전에 print_r해서 array의 값이 잘 들어오고 있는지를 먼저 보셔야 해요
여담으로 아마 $b가 아닌 chk에서 넘기는 숫자가 있을 꺼에요 그걸로 하셔야 해요
말씀하신대로 상품을 정렬하는 $i값을 넣으니 아주 잘됩니다. ㅠㅠ
정말 감사 드려요~ 좋은 하루 되세요~
<input type="text" name="baedal[<?=$i?>][<?=$b?>]" value="<?=$baedal[$b]?>" class="frm_input" size="5">
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
뭔가 잘못한 것 같은데,
orderlist.php에서는 이렇게하고
<input type="text" name="array(od_delivery_company[$b])" value="<?=$baedal[$b]?>" class="frm_input" size="5">
orderlistupdate.php 에서는 아래처럼 하였는데 잘 안되네요. ㅜㅜ
$delivery_company = isset($_POST['od_delivery_company'][$k]) ? clean_xss_tags($_POST['od_delivery_company'][$k], 1, 1) : '';
$delivery_company = implode('|',$delivery_company);