장바구니를 이용한 견적서 출력기능 만들기 정보
장바구니를 이용한 견적서 출력기능 만들기첨부파일
본문
목차
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() 함수를 선언합니다.
2) cart.php : 주문하기 버튼 옆에 견적서출력 버튼을 생성합니다.
3) ajax.cartprint.php 파일을 생성합니다.
4) cartprint.php 파일을 생성합니다.
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() 함수를 선언합니다.
<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>
2) cart.php : 주문하기 버튼 옆에 견적서출력 버튼을 생성합니다.
<button type="button" onclick="return form_print();" class="btn_submit" style="background:#1596db;">견적서출력</button>
3) ajax.cartprint.php 파일을 생성합니다.
<?php
include_once('./_common.php');
if(empty($_POST))
die('정보가 넘어오지 않았습니다.');
$dt_data = serialize($_POST);
set_session("cartprint", $dt_data);
die('');
?>
4) cartprint.php 파일을 생성합니다.
<?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']);
// 이하 생략 : 첨부파일 참조
?>
추천
3
3
댓글 12개
오잉 이거 진짜 필요한거 같은데 결과물 예시를 못봐서 넘 아쉽네요 너무 감사합니다
좋은 자료 감사합니다. ^^
한글이 깨져나오는데 어떻게 안될까요?
감사합니다
감사합니다. 잘되네요~^-^
추가옵션에도 제품이 있을경우 메인 견적금액이 계속 추가되네요.
php 버전문제인지 약간의 오류가 있었지만 해결되서
잘 쓰겠습니다 생큐~^.~
잘 쓰겠습니다 생큐~^.~
혹시 에러중에
Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, bool given in /www_root/lib/common.lib.php on line 1692
이부분과
Warning: Invalid argument supplied for foreach() in /www_root/shop/cartprint.php on line 196
이부분 해결하신걸까요 ㅠㅠ?
Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, bool given in /www_root/lib/common.lib.php on line 1692
이부분과
Warning: Invalid argument supplied for foreach() in /www_root/shop/cartprint.php on line 196
이부분 해결하신걸까요 ㅠㅠ?
@qoqofh cartprint.php 내용중에서
$qry = " SELECT * FROM `{$g5['g5_shop_cart_table']}` WHERE od_id = '{$s_cart_id}' AND it_id IN ( ". implode(",", $TMP['it']) ." ) ORDER BY it_id ";
를 아래와 같이 변경하세요
$qry = " SELECT * FROM `{$g5['g5_shop_cart_table']}` WHERE od_id = '{$s_cart_id}' AND it_id IN ( '". implode("','", $TMP['it']) ."' ) ORDER BY it_id ";
$qry = " SELECT * FROM `{$g5['g5_shop_cart_table']}` WHERE od_id = '{$s_cart_id}' AND it_id IN ( ". implode(",", $TMP['it']) ." ) ORDER BY it_id ";
를 아래와 같이 변경하세요
$qry = " SELECT * FROM `{$g5['g5_shop_cart_table']}` WHERE od_id = '{$s_cart_id}' AND it_id IN ( '". implode("','", $TMP['it']) ."' ) ORDER BY it_id ";
감사합니다.
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
이라는 에러가 나는데 뭐가 문제일까요 ㅠㅠ?
$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
이라는 에러가 나는데 뭐가 문제일까요 ㅠㅠ?
고수님들~ 상품추가옵션 있을 경우 해당 판매가 금액 추가 되어 오류가 발생됩니다. 상품추가옵션도 정상 작동할 수 있게 가능한 방법 없을까요? 도와주세요~