여분필드 동일한 코드 반복적으로 사용되는데 줄일 수 없을까요?
본문
여분필드를 사용중이고, 반복적으로 사용 되는 코드인데요
이 코드가 ㅠㅠ 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부터 카운팅 이부분 설정은 어떻게 해야 할까요 ?
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++) { 여긴 변동이 없어야 하고 추가로
증가값 바꿀 수 없을까요