체인의정석

게시판 조회 화면 상황에 따라 다르게 띄우기 (오류 수정) 본문

개발

게시판 조회 화면 상황에 따라 다르게 띄우기 (오류 수정)

체인의정석 2021. 1. 5. 16:16
728x90
반응형

1. 정보 조회해오는 화면을 2개로 안만들고 1개로 만든 후 상황에 따라서 다르게 뜨게 만들어 가는 중이므로, append가 연속해서 일어나는 오류가 일어났다. 이를 해결하기 위해 $("#contract_view_check").val("Y");를 추가하여 해결하였다.

 

서버사이드

    function getboardInfo(args){
        console.log("getboardInfo",args);
        $.ajax({
            type: "POST",
            url : 'tech/getboardInfo',
            data : {"bidx" :args.item.board_idx},
            success: function(r){
                if(r.success){
                    console.log("응답",r)
                    let board_idx = r.data[0].board_idx;
                    let title = r.data[0].title;
                    let content = r.data[0].content;
                    let contract_hash = r.data[0].contract_hash;
                    let contract_name = r.data[0].contract_name;
                    let contract_route = r.data[0].contract_route;
                    let contract_txid = r.data[0].contract_txid;
                    console.log(title,content)
                    $("#title_view").val(title);
                    $("#content_view").val(content);
                        if(contract_route){
                                if($("#contract_view_check").val()=="Y"){
                                alert("pass")
                                }else{
                                    alert("in")
                                    $("#contract_view_check").val("Y");
                                    $("#contract_hash").val(contract_hash);
                                    // $("#contract_view").text(`${contract_name}`);
                                    get_blockchaindata(board_idx);
                                    let pstr = "bidx=" + board_idx;
                                    $("#contract_view").append("<a href='tech/contractdownload?" + pstr +"'>" + contract_name + "</a>"); 
                                };
                            $(".contract_display").show();
                        }else{
                            $(".contract_display").hide();
                        }
                        alert("게시판조회")
                }else{
                    alert("에러 발생");
                }
                $("#viewboardmodal").modal('show');
            }
        })
    }

게시판의 종류가 2가지 이며, 만약 값이 있을 경우에 append를 하면 안되므로 if 문을 써서 화면을 다르게 디스플레이 하였다.

 

2. 클라이언트

<p id="contract_view_check" style="display: none;"></p>

disply를 none으로 해둔다. 프론트엔드 프레임워크에서는 vue에서의 vuex와 같이 변수를 보관해주는 장소가 따로 있지만 ejs만 써서 하기때문에 이렇게 display를 hidden으로 해둬서 값을 체크하는 로직을 자주 사용한다.

 

 

728x90
반응형
Comments