orderlist.php 배송업체를 여러개 저장하려고 합니다.

orderlist.php 배송업체를 여러개 저장하려고 합니다.

QA

orderlist.php 배송업체를 여러개 저장하려고 합니다.

본문

orderlist.php의 배송업체를

<?

$baedal = explode("|",$row['od_delivery_company']);
            $baedal_0 = $baedal[0];
            $baedal_1 = $baedal[1];
            $baedal_2 = $baedal[2];

?>

<input type="text" name="baedal_0" value="<?=$baedal[0]?>" class="frm_input" size="5">

<input type="text" name="baedal_1" value="<?=$baedal[1]?>" class="frm_input" size="5">

<input type="text" name="baedal_2" value="<?=$baedal[2]?>" class="frm_input" size="5">

 

이렇게 쪼개서 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로 합치시면 될거에요

개노미님 답변 감사드립니다.
뭔가 잘못한 것 같은데,

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);

orderlist.php


<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">


orderlistupdate.php

$delivery_company = implode('|',$baedal);


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문 안으로는 어떻게 넣어야 될까요?

개노미님 답변 감사 드립니다.ㅜㅜ
말씀하신대로 아래처럼 적용하니 각 상품마다 저장이 잘 됩니다. 그런데 이상하게
제가 상품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]);

orderlist.php에서 데이터를 전송하실 때 느낌이


상품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">

이런식으로 되어 있어야 하구요
implode하시기 전에 print_r해서 array의 값이 잘 들어오고 있는지를 먼저 보셔야 해요

여담으로 아마 $b가 아닌 chk에서 넘기는 숫자가 있을 꺼에요 그걸로 하셔야 해요

개노미님 답변 감사 드립니다.
말씀하신대로 상품을 정렬하는 $i값을 넣으니 아주 잘됩니다. ㅠㅠ
정말 감사 드려요~ 좋은 하루 되세요~

<input type="text" name="baedal[<?=$i?>][<?=$b?>]" value="<?=$baedal[$b]?>" class="frm_input" size="5">

저장 하실때는 배열을  json_encode 해서 저장하고

출력 할때는 json_decode 로 하면 되지 않을까요?

답변을 작성하시기 전에 로그인 해주세요.
전체 123,128 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT