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

장바구니를 이용한 견적서 출력기능 만들기

· 8년 전 · 8514 · 12
목차
1. 프로그램 구조 설명
2. 프로그램 세부내용


1. 프로그램 구조 설명
1) 견적상품은 장바구니에 담긴 상품을 사용합니다.
(1) 선택옵션을 1개(1단계)만 사용합니다. 선택옵션이 2단 이상일 경우 오작동 할 수 있음.
(2) 추가옵션은 사용하지 않습니다. 추가옵션이 있는 경우 오작동 할 수 있음.
2) 장바구니(cart.php)에 견적서출력 버튼을 생성(주문하기 버튼 옆)
3) 버튼 클릭으로 자바스크립트 함수를 실행
(1) ajax방식으로 상품정보를 세션에 저장
(2) 팝업으로 견적서인쇄 페이지를 띄움
4) 견적서인쇄 페이지에서 세션값을 검사하여 상품정보DB 조회후 화면에 표시함

*) 견적자료는 DB에 저장하거나 별도로 전송하지 않습니다. (필요하면 별도로 개발하세요.)



2. 프로그램 세부내용

1) cart.php : form_check() 함수 아래에 form_print() 함수를 선언합니다.

[code]
<script type="text/javascript">
// 장바구니 상품을 견적서로 출력한다. [라보텍, 2017-05-10]
function form_print() {
//console.log("print click");
var f = document.frmcartlist;
var objWin = null;
var cart_data = $(f).serialize();

if($("input[name^=ct_chk]:checked").size() < 1) {
alert("견적서를 출력하실 상품을 하나이상 선택해 주십시오.");
return false;
}

$.ajax({
type: "POST",
data: cart_data,
url: "ajax.cartprint.php",
cache: false,
async: false,
success: function(data) {
save_result = data; // ajax 결과처리는 대충넘어갑니다.
}
});

objWin = window.open("cartprint.php", "WinItemPrint", "width=640,height=750,scrollbars=yes");
if(objWin) {
return;
} else {
alert("견적서 페이지를 실행하지 못하였습니다.");
return;
}
}
</script>
[/code]

2) cart.php : 주문하기 버튼 옆에 견적서출력 버튼을 생성합니다.

[code]
<button type="button" onclick="return form_print();" class="btn_submit" style="background:#1596db;">견적서출력</button>
[/code]

3) ajax.cartprint.php 파일을 생성합니다.

[code]
<?php
include_once('./_common.php');

if(empty($_POST))
die('정보가 넘어오지 않았습니다.');

$dt_data = serialize($_POST);
set_session("cartprint", $dt_data);

die('');
?>
[/code]

4) cartprint.php 파일을 생성합니다.

[code]
<?php
include_once('./_common.php');
include_once(G5_PATH.'/head.sub.php');

# 세션데이터에서 장바구니 전송값을 가져온다. ---------------------------------------------------
# [cart.php -> ajax.cartprint.php 세션저장한 값]
$tmp_data = get_session("cartprint");
if($tmp_data) {
$array = unserialize($tmp_data);
}
//print_r($array);

# 장바구니 데이터 검사 --------------------------------------------------------------------------
if(is_array($array) && is_array($array['it_id']) && is_array($array['ct_chk'])) {
# 장바구니 전송됨
} else {
# 장바구니 전송안됨
echo "<h2>견적서를 출력할 제품이 없습니다.</h2>";
include_once(G5_PATH.'/tail.sub.php');
exit;
}

# 장바구니 no 가공 ---------------------------------------------------------------------------
/* 장바구니 상품번호와 체크여부(ct_chk)를 비교하여 견적할 제품번호만 남긴다. */
foreach($array['it_id'] as $key=>$val) {
if(isset($array['ct_chk'][$key]) && $array['ct_chk'][$key]=="1") {
$TMP['it'][] = $val;
} else {
continue;
}
}

//print_r($TMP['it']);
// 이하 생략 : 첨부파일 참조
?>
[/code]

댓글 작성

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

로그인하기

댓글 12개

foreach($DATA['cart'] as $key=>$val) {
$this_price = ($val['ct_price']+$val['io_price']) * $val['ct_qty'];
$total_price += $this_price;

이쪽 구문에서
Warning: Invalid argument supplied for foreach() in /www_root/shop/cartprint.php on line 196

이라는 에러가 나는데 뭐가 문제일까요 ㅠㅠ?

고수님들~ 상품추가옵션 있을 경우 해당 판매가 금액 추가 되어 오류가 발생됩니다. 상품추가옵션도 정상 작동할 수 있게 가능한 방법 없을까요? 도와주세요~

게시글 목록

번호 제목
670
662
660
653
652
637
623
622
620
619
618
614
599
598
593
586
583
578
575
572
570
568
566
558
552
551
545
543
531
518