티스토리 뷰

반응형

유용하게 사용하는 드롭박스형태의 리스트에서 우리가 가변적으로 옵션값을 넣고 싶을때 그냥 코딩하면 실전에서 이렇게 했었습니다.

 <select name="find">
           <?php   
      switch ($find) {
 case 'all' : print "  
           <option value='all' selected >전체</option>
           <option value='which'>입출고일</option>
           <option value='outworkplace'>현장명</option>
           <option value='model'>모델명</option>
           <option value='item'>철판종류</option>
           <option value='company'>해당업체</option> "; break;
 case 'which' : print "  
           <option value='all'  >전체</option>
           <option value='which' selected>입출고일</option>    
           <option value='outworkplace'>현장명</option>
           <option value='model'>모델명</option>
           <option value='item'>철판종류</option>
           <option value='company'>해당업체</option> "; break;    
   case 'outworkplace' : print "  
           <option value='all'  >전체</option>
           <option value='which'>입출고일</option>    
           <option value='outworkplace' selected>현장명</option>
           <option value='model'>모델명</option>
           <option value='item'>철판종류</option>
           <option value='company'>해당업체</option> "; break;    
 case 'model' : print "  
           <option value='all'  >전체</option>
           <option value='which'>입출고일</option>    
           <option value='outworkplace' >현장명</option>
           <option value='model'selected>모델명</option>
           <option value='item'>철판종류</option>
           <option value='company'>해당업체</option> "; break;
 case 'item' : print "  
           <option value='all'  >전체</option>
           <option value='which'>입출고일</option>    
           <option value='outworkplace' >현장명</option>
           <option value='model'>모델명</option>
           <option value='item'selected>철판종류</option>
           <option value='company'>해당업체</option> "; break;    
 case 'company' : print "  
           <option value='all'  >전체</option>
           <option value='which'>입출고일</option>    
           <option value='outworkplace' >현장명</option>
           <option value='model'>모델명</option>
           <option value='item'>철판종류</option>
           <option value='company'selected>해당업체</option> "; break;    
default : print "  
           <option value='all'  >전체</option>
           <option value='which'>입출고일</option>    
           <option value='outworkplace' >현장명</option>
           <option value='model'>모델명</option>
           <option value='item'>철판종류</option>
           <option value='company'>해당업체</option> "; break;    
   
  } ?>   
        </select>
   

코드가 너무 길어서 이걸 배열에 넣고 하는 방법이 없을까 많이 찾아보고 연구한 끝에 그래도 저 길이에서 좀더 구조적인 형태로 변경한 것이 아래 같습니다.

배열에 넣고 php문으로 반복하면서 넣는 방법... 이게 코드를 줄일 수 있는 좋은 방법 같아요.

$steelsource_item_yes=array();

 require_once("../lib/mydb.php");
  $pdo = db_connect();
   
   $sql="select * from mirae8440.steelsource"; 

 try{  

   $steelsource_item_yes=array();
  while($row = $stmh->fetch(PDO::FETCH_ASSOC)) {
 
  if($steelsource_item[$counter]!=$last_item)
  {
 $last_item= $steelsource_item[$counter];
     $steelsource_item_yes[$item_counter]=$last_item;
 $item_counter++;
  } 
  $counter++;
 }   
   } catch (PDOException $Exception) {
    print "오류: ".$Exception->getMessage();
}    

array_push($steelsource_item_yes," ");
$steelsource_item_yes = array_unique($steelsource_item_yes);
sort($steelsource_item_yes);

<select name="Bigsearch" id="Bigsearch"  >
<?php  
   for($i=1;$i<$item_counter;$i++) {
     if($Bigsearch==$steelsource_item_yes[$i])
print "<option selected value='" . $steelsource_item_yes[$i] . "'> " . $steelsource_item_yes[$i] .   "</option>";
 else   
   print "<option value='" . $steelsource_item_yes[$i] . "'> " . $steelsource_item_yes[$i] .   "</option>";
   }     
   ?>   
 </select>

생각보다 코드가 작아지지 않는다고 생각할 수도 있지만, 위의 항목이 5개가 아닌 20개라면??

아니 100라면?? 

이건 배열을 안쓰고는 프로그램 못하는 수준까지 갑니다. 

배열로 넣고 그 배열을 불러와서 화면에 나타내는 방법....

차근차근해보면 그리 어려운 것은 아니지만, 처음접하면 약간 어리둥절하지요~

코딩해서 이기는 그날까지 화이팅~

반응형
댓글