여분필드 동일한 코드 반복적으로 사용되는데 줄일 수 없을까요?

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
여분필드 동일한 코드 반복적으로 사용되는데 줄일 수 없을까요?

QA

여분필드 동일한 코드 반복적으로 사용되는데 줄일 수 없을까요?

본문

여분필드를 사용중이고, 반복적으로 사용 되는 코드인데요

이 코드가 ㅠㅠ 10개가 될 수도 있고 그 이상이 될 수도 있는데

똑같은 코드를 넣자니 코드가 길어지고

혹시 줄여서 사용할 방법은 없을까요?

 

코드에서 bo_11,data_4_<?=$i+1?> 이 2개의 값들만 변하거든요

 

반복되는 코드

<?php
                $item_list = explode(',', $board['bo_10']);
                for ($i=0; $i<count($item_list); $i++) {
                    $option_item = trim($item_list[$i]);
                ?>
                data_1_<?=$i+1?> = new Option("<?php echo $option_item ?>", "<?php echo $option_item ?>");
                <?php } ?>

 

반복되는 코드

<?php
                $item_list = explode(',', $board['bo_11']);
                for ($i=0; $i<count($item_list); $i++) {
                    $option_item = trim($item_list[$i]);
                ?>
                data_2_<?=$i+1?> = new Option("<?php echo $option_item ?>", "<?php echo $option_item ?>");
                <?php } ?>

 

이 질문에 댓글 쓰기 :

답변 6

 for ($i=0,$k=1; $i<count($item_list); $i++,$k++) {
    $option_item = trim($item_list[$i]);
    $result .="data_".$num."_".$k." = new Option('$option_item', '$option_item');\n\t\t\t";
    }

$item_list = explode(',', $board['bo_10']);

$option ='';
                for ($i=0; $i<count($item_list); $i++) {
                    $option_item = trim($item_list[$i]);
                    $option .= "<option value='$option_item'>$option_item</option>";

                   }

이렇게 만들어 놓고

<selsect name='d1'><?=$option?></select>

<selsect name='d2'><?=$option?></select>

~

~

10개든 100개든 위와 같이 하면 될테죠

 

아!! 죄송

댓글보고 답변을 보니 잘못된 답변이네요

위 답변에다가

bo_11인 경우도 하나더 만들어서 두개를 필요할때마다 사용

bo_11추가

$item_list = explode(',', $board['bo_11']);

$option2 ='';
                for ($i=0; $i<count($item_list); $i++) {
                    $option_item = trim($item_list[$i]);
                    $option2 .= "<option value='$option_item'>$option_item</option>";

                   }

////////////////////////

<selsect name='d1'><?=$option?></select>

<selsect name='d2'><?=$option2?></select>

~

~

 

위에 코드를 그냥 함수로 만들어 적용해보니 더 수월하네요
위 항목이 여분필드에 있는 값들을 불러와서 스크립트 자체에서 뿌려주는거거든요

이렇게 함수로 만들고,

function option_bo_str ($data1,$num=''){
    $item_list = explode(',', $data1);
    $num ='';
    for ($i=0; $i<count($item_list); $i++) {
    $option_item = trim($item_list[$i]);
    $num ='';
    $result .="data_$num_$b = new Option('$option_item', '$option_item');\n\t\t\t";
    }
    return($result);
}

사용할 때 <?php echo option_bo_str($board['bo_8'],1); ?> 이렇게 하니
일단 불러는 와 지네요

 

근데 위와 같이 했을 경우

data_숫자_1부터 카운팅 = new Option('i30', 'i30');  이렇게 뜨는데

 

data_숫자_1부터 카운팅 이부분 설정은 어떻게 해야 할까요 ?

 

2077522690_1535032384.1868.png

 

data_숫자지정_자동으로 1씩 증가해야 해요 ㅠㅠ

bo_8은 잘 작동하는데 왜 숫자는 아무것도 출력되지 않을까요 ?ㅠㅠ

<?php echo option_bo_str($board['bo_8'],1); ?>

 

아래와 같이 떠야함 ㅠㅠ

data_2_1 = new Option("K3", "K3");
                                data_2_2 = new Option("K5", "K5");
                                data_2_3 = new Option("K7", "K7");
                                data_2_4 = new Option("K9", "K9");
                                data_2_5 = new Option("X-TREK", "X-TREK");
                                data_2_6 = new Option("니로", "니로");
                                data_2_7 = new Option("델타", "델타");
                                data_2_8 = new Option("레이", "레이");
                                data_2_9 = new Option("레토나", "레토나");
                                data_2_10 = new Option("로체", "로체");
                                data_2_11 = new Option("록스타", "록스타");
                                data_2_12 = new Option("리갈", "리갈");
                                data_2_13 = new Option("리오", "리오");
                                data_2_14 = new Option("모닝", "모닝");
                                data_2_15 = new Option("모하비", "모하비");
                                data_2_16 = new Option("베스타", "베스타");
                                data_2_17 = new Option("봉고II 미니버스", "봉고II 미니버스");
                                data_2_18 = new Option("브리샤", "브리샤");
                                data_2_19 = new Option("비스토", "비스토");
                                data_2_20 = new Option("세피아", "세피아");
                                data_2_21 = new Option("슈마", "슈마");
                                data_2_22 = new Option("스토닉", "스토닉");
                                data_2_23 = new Option("스팅어", "스팅어");
                                data_2_24 = new Option("스펙트라", "스펙트라");
                                data_2_25 = new Option("스포티지", "스포티지");
                                data_2_26 = new Option("쎄라토", "쎄라토");
                                data_2_27 = new Option("쏘렌토", "쏘렌토");
                                data_2_28 = new Option("쏘울", "쏘울");
                                data_2_29 = new Option("아벨라", "아벨라");
                                data_2_30 = new Option("엔터프라이즈", "엔터프라이즈");
                                data_2_31 = new Option("엘란", "엘란");
                                data_2_32 = new Option("오피러스", "오피러스");
                                data_2_33 = new Option("옵티마", "옵티마");
                                data_2_34 = new Option("카니발", "카니발");
                                data_2_35 = new Option("카렌스", "카렌스");
                                data_2_36 = new Option("카스타", "카스타");
                                data_2_37 = new Option("캐피탈", "캐피탈");
                                data_2_38 = new Option("콩코드", "콩코드");
                                data_2_39 = new Option("크레도스", "크레도스");
                                data_2_40 = new Option("타우너", "타우너");
                                data_2_41 = new Option("토픽", "토픽");
                                data_2_42 = new Option("파크타운", "파크타운");
                                data_2_43 = new Option("포르테", "포르테");
                                data_2_44 = new Option("포텐샤", "포텐샤");
                                data_2_45 = new Option("프라이드", "프라이드");
                                data_2_46 = new Option("프레지오", "프레지오");
                                data_2_47 = new Option("피아트132", "피아트132");

function option_bo_str ($data1,$num=''){
    $item_list = explode(',', $data1);
    for ($i=0; $i<count($item_list); $i++) {
    $option_item = trim($item_list[$i]);
    $result .="data_".$num."_$b = new Option('$option_item', '$option_item');\n\t\t\t";
    }
    return($result);
}

이렇게 해서 하니 <?php echo option_bo_str($board['bo_8'],2); ?> 제대로 되네요

근데 

data_2_여기 숫자가 1부터 증가해야 하는데 어떻게 해야할까요 ?

아래와 같이요 ㅠㅠ


data_2_1 = new Option("K3", "K3");
data_2_2 = new Option("K5", "K5");
data_2_3 = new Option("K7", "K7");
data_2_4 = new Option("K9", "K9");
data_2_5 = new Option("X-TREK", "X-TREK");

function option_bo_str ($data1,$num=''){
    $item_list = explode(',', $data1);
    for ($i=0; $i<count($item_list); $i++) {
    $option_item = trim($item_list[$i]);
    $result .="data_".$num."_".$i." = new Option('$option_item', '$option_item');\n\t\t\t";
    }
    return($result);
}

 

이렇게 하니 원하는대로 되긴하는데

숫자 1부터 시작되야 하는데 0부터 시작되네요 ㅠㅠ

   for ($i=0; $i<count($item_list); $i++) { 여긴 변동이 없어야 하고 추가로

 

증가값 바꿀 수 없을까요

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

회원로그인

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