데이터가 A[1]/B[2]/C[3] 인 경우 <div id="A"></div>에 1이 들어가게 하고싶습니다.

데이터가 A[1]/B[2]/C[3] 인 경우 <div id="A"></div>에 1이 들어가게 하고싶습니다.

QA

데이터가 A[1]/B[2]/C[3] 인 경우 <div id="A"></div>에 1이 들어가게 하고싶습니다.

본문

일전에 데이터 값이 `1월/2월/3월`인 경우 1월, 2월, 3월에 해당하는 체크박스에 체크를 하는 작업에 대해 질문을 드렸었고, 그 답변으로

$wr_9_arr = explode('/', $write['wr_9']);
<?php echo (in_array('1월',$wr_9_arr)) ? " checked" : "";?>

라는 답변을 받아 적용한 적이 있습니다.

 

이 기능에 변경이 필요하게 되었습니다.

 

3730852897_1652330082.0749.png

게시글 작성 디자인이 체크박스에서 텍스트작성으로 변경되어 위의 이미지와 같은 모습이 되었습니다.

위의 1월, 3월, 5월에 각각 15 ,17, 13 이라는 값을 입력하고 저장을 누르면 wr_9의 데이터는

`1월[15]/3월[17]/5월[13]`

이라는 식으로 데이터가 들어가도록 작성은 되었습니다.

 

이제 view 페이지, 게시글 수정 페이지에 들어갔을 때,

wr_9의 값에 1월 이라는 텍스트가 있다면 그 뒤의 [] 안에 있는 값을 input에 넣고싶습니다.

위의 $wr_9_arr = explode('/', $write['wr_9']); 를 응용해야할 것같은데, wr_9_arr은 /로 split 한 값이니

wr_9_arr 의 첫번째 값이 1월[15],

wr_9_arr 의 두번째 값이 3월[17],

wr_9_arr 의 세번째 값이 5월[13] 이 될 것인데,

 

js라면, 좀 무식하게 작성한다고 할 때

if(wr_9_arr[0].search !== -1) {

wr_9_arr[0].split("[")[1].split("]")[0];

}

이런식으로 작성하여 15라는 값을 넣는다던가 할텐데, 다른 방법은 없을까요?

 

현재는 js로 기능을 작성하여

<script>
    $(function() {
        const wr_9 = $("input[name=wr_9]").data("wr");
        if(wr_9 != "") {
            let split = wr_9.split("/");
            for(let v=0; v<split.length; v++) {
                const value = split[v];
                const valueSplit = value.split("[");
                const month = valueSplit[0];
                const monthVal = valueSplit[1].split("]")[0];
                const input = $(`[data-month=${month}]`);
                input.val(monthVal);
            }
        }
    })
</script>

이렇게 작성하였습니다. 기능은 정상 작동중입니다.

이 질문에 댓글 쓰기 :

답변 1

<?php 
    $write['wr_9'] = "1월[15]/3월[17]/5월[13]";
    $wr_9_arr = explode('/', $write['wr_9']); 
    
    $ret = array();
    foreach ($wr_9_arr as $value) {
        preg_match_all("/\[([^)]+)\]/i", $value, $matches);
        $value =  preg_replace('/\[[^\]]*\]/','',$value);
        $ret[$value] = $matches[1][0];
    }
?>

<div id="1월"><?=$ret['1월']?></div>

답변을 작성하시기 전에 로그인 해주세요.
전체 123,128 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT