테스트 사이트 - 개발 중인 베타 버전입니다

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

GNUAPP 2년 전 조회 1,946

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개

채택된 답변
+20 포인트
2년 전

배송업체가 늘었다 줄었다 할 수 있을 것이라고 가정하면

input의 name을 array(baedal[])로 해서 전송하시고

합치실 때 php->implode로 합치시면 될거에요

로그인 후 평가할 수 있습니다

답변에 대한 댓글 7개

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

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);
개노미
2년 전
orderlist.php
[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를 돌리고...
G
GNUAPP
2년 전
개노미님 답변 감사 드립니다.ㅠ
말씀하신대로 하니, 잘됩니다. 각각의 상품에 저장되게 하려면
for ($i=0; $i<$count_post_chk; $i++) 안으로 들어가야 하는데
for문 안으로는 어떻게 넣어야 될까요?
개노미
2년 전
name = baedal[] => baedal[<?=$i?>][]
이런식으로 이름을 분기해줘야 해요
그러면 implode구간도 $delivery_company = implode('|',$baedal[$i]); 이런식으로 바뀌어야 하구요
G
GNUAPP
2년 전
개노미님 답변 감사 드립니다.ㅜㅜ
말씀하신대로 아래처럼 적용하니 각 상품마다 저장이 잘 됩니다. 그런데 이상하게
제가 상품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]);
개노미
2년 전
orderlist.php에서 데이터를 전송하실 때 느낌이
[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에서 넘기는 숫자가 있을 꺼에요 그걸로 하셔야 해요
G
GNUAPP
2년 전
개노미님 답변 감사 드립니다.
말씀하신대로 상품을 정렬하는 $i값을 넣으니 아주 잘됩니다. ㅠㅠ
정말 감사 드려요~ 좋은 하루 되세요~

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

댓글을 작성하려면 로그인이 필요합니다.

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

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

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

G
GNUAPP
2년 전
답변 감사드립니다. 좋은 하루 되세요~

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인