본문 바로가기

하루정리

2022.07.07 자바 프로젝트 진행중 배운것과 오류들

나는 버튼의 value를 보내려고 했는데 처음에는 this.value()로 보냈다. 그러니 당연하게도 값이 가지 않았다. 

()에 보낼 값을 정해줘야 하는데 그걸 빠뜨린듯.

이미 value로 지정해준 값을 보내려면 ()를 빼야한다. 

 

 

맨날 th문만 쓰다보니 일반 for문이 기억이 나지 않아서 다시 작성함. 

아웃풋으로 내보낼때 일반 텍스트는 ''  수식을 걸고 싶다면 ""로 내보내야 한다.

 

html-data 사용

리스트를 불러올  때 id 를value와 동일하게 지정해주어 select에서 선택한 value가 function으로 갈때 그 벨류값에 해당하는 id를 가진 태그의 data값을 불러왔다. option하나로 여러 값을 보낼 때 유용

 

 

저렇게 썼더니 pro014 에 0이 같이 붙어서 나온다. 

 

 

새로고침해주는 함수

 

 

 

function basketListOutput(basketList) {
    var output = "";

    output += "<table>";
    output += "<caption>장바구니</caption>";
    output += "<tr>";
    output += "<th>상품사진명</th>";
    output += "<th>상품이름</th>";
    output += "<th>상품평점</th>";
    output += "<th>수량 선택</th>";
    output += "<th>가격</th>";

    output += "</tr>";

    for (var i in basketList) {
        output += "<tr>";
        output += "<td><img src='ShoppingImg/basketList[i].productPhoto'</img></td>"
        output += "<td>" + basketList[i].orderName + "</td>"
        output += "<td><button id='minus" + i + "'  value='minus" + i + "' data-code='" + basketList[i].productCode + "'  data-price='"+basketList[i].orderPrice+"' onclick='quantityMinus(this.value)'>-</button> </td>"
        output += "<td id='" + i + "'>수량표시</td>"
        output += "<td><button id='plus" + i + "' value='plus" + i + "'  data-code='" + basketList[i].productCode + "' data-price='"+basketList[i].orderPrice+"'  onclick='quantityPlus(this.value)'>+</button> </td>"
        output += "<td>"+basketList[i].orderPrice+" </td>"
        output += "<td><button value='" + basketList[i].productCode + "' onclick='basketDelete(this.value)'>장바구니에서 빼기</button>"
    }
    // div 영역 reviewArea
    var reviewArea = document.getElementById("basketView");
    reviewArea.innerHTML = output;
    quantity = parseInt(i);
    console.log(basketList);
    quantityOutput(quantity, basketList)

 

 

 

   //List로 불러온 각각의 상품 수량 표시해주는 ajax

//List로 불러온 각각의 상품 수량 표시해주는 ajax
function quantityOutput(quantity, basketList) {

    quantityId.length = 1 + quantity;
    quantityView.length = 1 + quantity;
    outputArr.length = 1 + quantity;

    for (var i = 0; i >= quantity; i++) {
        quantityId[i] = i;
    }
    for (var i = 0; i <= quantity; i++) {
        console.log(loginId);
        $.ajax({
            type: "GET",
            url: "orderCountOutputAjax",
            data: {
                "memberId": loginId,
                "productCode": basketList[i].productCode
            },
            dataType: "json",
            success: function (orderCount) {
                console.log("orderCount:" +orderCount)

                for (var i = 0; i <= orderCount.length + 1; i++) {
                    outputArr[i] = orderCount[i];
                    quantityView[i]=i,toString()
                    console.log(i);
                    var reviewArea = document.getElementById(quantityView[i]);
                    reviewArea.innerHTML = outputArr[i];
                }
                console.log(outputArr);
            }, error: function (request, status, error) {
                alert("code:" + request.status + "\n" + "message:" + request.responseText + "\n" + "error:" + error);
            }


        })

    }

}

 

가장 어려웠던 부분 List로 product를 불러온 왔고 각 <td>에  orders 테이블에있는 수량을 넣어줘야 했다.

사실 join을 사용했으면 간단했을텐데....

너무 빙 돌아왔지만 좋은 경험이 되었다. for문을 정말 미친듯이 활용했더니 결과가 나오는 게 신기했다. 

for문은 값만 주고 사라지는 게 아니라 반복된 for문은 겨속 남아서 결과 값을 출력해 준다는 걸 이해했다.