2016-06-22 4 views
0

"코드"및 "그룹"목록이있는 테이블이 있습니다. optgroup을 사용하여 그룹화 된 "코드"로 선택 상자를 동적으로 생성 할 수 있어야합니다. 나는 몇몇 해결책 온라인 그러나 운 없음으로 어지럽히는 시도했다.PHP mySQL 선택 상자 포함 선택 상자

표 정보 :

CREATE TABLE `dtcodes` (
`id` int(11) NOT NULL AUTO_INCREMENT, 
`groups` varchar(30) NOT NULL, 
`code` varchar(5) NOT NULL, 
`name` varchar(40) NOT NULL, 
PRIMARY KEY (`id`) 
) ENGINE=InnoDB AUTO_INCREMENT=52 DEFAULT CHARSET=latin1 

groups|codes|name 
----------------------- 
Materials|M1|No Product 
Materials|M2|Low Brix 
Other Equipment|AV1|Test1 
Other Equipment|AV2|Test2 

PHP의의 mysqli : 마지막에

$sqlcodes = "SELECT * FROM dtcodes ORDER BY groups ASC"; 
    $resultcodes = mysqli_query($con, $sqlcodes); 

내 목표는 이런 일이 될 것입니다.

<select> 
    <optgroup label="Materials"> 
     <option value="M1">No Product</option> 
     <option value="M2">Low Brix</option> 
    </optgroup> 
    <optgroup label="Other Equipment"> 
     <option value="AV1">Test1</option> 
     <option value="AV2">Test2</option> 
    </optgroup> 

답변

0

게시하기 전에 20 분을 기다려야합니다.

echo "<td><select class='form-control'>"; 
echo "<option>Select a code...</option>"; 
if ($resultcodes->num_rows > 0) { 
while($row = $resultcodes->fetch_assoc()) { 
    $group[$row['groups']][] = $row; 
} 
foreach ($group as $key => $values){ 
    echo '<optgroup label="'.$key.'">'; 
    foreach ($values as $value) 
    { 
     echo '<option value="'.$value['code'].'">'.$value['name'].'</option>'; 
    } 
    echo '</optgroup>'; 
} 
} else {} 
echo "</select></td>";