반응형

안녕!

 

오늘은 몇일간 삽질한 결과를 좀 옮겨볼까해!

(참고로 이건.. 참고용)

 

코드가 개판일 수 있어

그래도 그걸 필터해서 보는건 자신의 몫이고

이건 참고용이니..

사실 js나 jquery는 잘 만지질 않아봤어 ㅋㅋ

백엔드만 주구장창..

 

상품을 인식

-> 해당 바코드가 세트아이템이 존재하는지 확인

-> 존재한다면 세트아이템에 대한 정보를 표시

 


cont

public function setItemProduct(){
        $barcode	= $this->input->post('barcode'); //상품의 바코드를 post 타입으로 받아서 barcode 변수에 담음
        $setList	= $this->[MODEL명]->getSetItemSaleList($barcode);	//이건.. set의 개념x 세트아이템에 대한 개념으로 barcode를 보내 WHERE절에 추가해 결과값을 setList 변수에 담음
        $json_data  = array(); //json_data array 타입을 선언
       
        if($setList){
            $json_data["addPcode"]       = $setList[0]['pcode']; //상품코드
            $json_data["addPrtnm"]       = $setList[0]['addprtnm']; // 세트아이템
            $json_data["addPrice"]       = $setList[0]['addprice']; // 세트아이템가격
            $json_data["addBarcode"]     = $setList[0]['barcode']; // 세트아이템 바코드
            $json_data["opt"]            = $setList[0]['opt']; 		// 세트아이템 명칭
        } else {
        	// 존재 데이터 없을 시, 빈값으로 ( 안하면 에러..)
            $json_data["addPcode"]       = "";
            $json_data["addPrtnm"]       = "";
            $json_data["addPrice"]       = "";
            $json_data["addBarcode"]     = "";
            $json_data["opt"]            = "";
        }
        header("Content-type:application/json;charset=UTF-8");
        echo json_encode($json_data,true);

    }

 

 


JS view

function setItemProduct(barcode) {
	if(typeof barcode != 'undefined' && barcode != ''){ // 상품 바코드 인식이 없다면 pass
		var url = "/cont/setItemProduct/";
		var err = '';
        var returnOpt = "";
        $.ajax({
            type: "POST", // 데이터 전송 방식
            url: url, // 컨트롤러 URL
            dataType : "json", //데이터 타입
            async:false, // 전역변수설정, false로 해야지 전역변수로 사용 가능
            data: { 'barcode' : barcode}, // 
            success: function(data) { //success
                if (barcode == data.addBarcode) {	// 인식된 제품의 바코드와 쿼리 바코드가 일치하다면..?
                    //alert("productFind opt = " + data.opt); // alret로 변수가 정상적으로 존재하는지 확인
                   
                }
                returnOpt = data.opt; // 이쪽에다가 변수를 처리해줘야지 변수 return이 가능 이외의 곳은.. undefine
            },
            error: function (xhr, desc, err) { // 에러처리
              alert("code:"+xhr.status+"\n"+"message:"+xhr.responseText+"\n"+"error:"+err); //에러구문 alert
              console.log(err);  //에러구문 console.log

              return false;    
            }		  
        });
        //alert(returnOpt); // 리턴값 확인
        return returnOpt; // 리턴
        
       
	}
}

 


view

function onInsertRow(barcode,status) { //barcode, status는 다른 친구들이야 .. :)
   var returnOpt = setItemProduct(barcode); //ajax에서 조건문을 처리를 위해서 변수에.. 
				.
                .
                .
                .
                .
}

 


model은.. 적지 않았어 ㅎㅎ

어쨋든.. ! 이번 기회를 통해서 .. ajax를 공부해봤는데

아.. 하면서도 하... 하기도 하더라구

 

내가 구현하고 있는건 쉽게말해서 결제창이야.

우리가 편의점이나, 백화점, 마트 어딜가나 POS 기능을 사용하잖아?

 

그런데 할인품목도 있을거구..

이거랑 함께사면 더 할인을 해주는 뭐 그런것도 있을거구..

 

그런 기능 중에 일부를 구현했어

 


"왜 다 쓰지도 않을거면서 다른 변수들도 선언 해두었니!? "

다음 기능을 위해서랄까..?

 

어쩃든.. 계속 창이 새로고침 되면 안되잖아?

ajax는 고정된 화면 상태에서 값의 변화가 이루어 져야해

그러다 보니 비동기적으로 처리 가능한 ajax를 사용했어야했고..

 

"혹시나 이글을 보고 이렇게 사용해도 가능해!"

 

혹은

 

"기술적으로 이부분은 없어도 되고 이 부분만 들어가면된다!"

 

이런게 있다면 적어주길바라

피드백은 내게 큰 힘이 된다는걸 알아줘!


 

"js는 UI 사용상 기능을 위한거야!"

"응 그건 어쩔 수 없어.. 구조가 이미 엉망인 상태에서 인수인계 받은거라"


이번에.. 2차 배열로 인한 고생을 좀 했어

또한.. undefine도 그렇구 ..

 

위에 있는 내용대로 하니.. 

다 해결됐지 모야!

 

하나하나 주석을 달아놨으니 참고하길 바라!

 

어쨌든...!ㅋㅋ

그럼 20000!

 

반응형