2012-03-01 17 views
3

私はindex.phpにselectフォームオブジェクトを持っています。項目は、mySQLから取得されます。私が達成しようとしているのは、catID = NULLになるたびにoptgroupを作成することです。この場合、セクション1とセクション2はoptgroupsでなければなりません。しかしオプトグループは1つのオプションの後に閉じられます。任意のヒント?スクリーンショット:Optgroupsは1項目の後に閉じます。動的リスト

enter image description here

データベース - >テーブル:

catId catName 
NULL --Section1-- 
1010 Bilar 
1020 Bildelar & tillbehör 
1030 Motorcycklar 
1040 Motorcycklar delar & tillbehör 
1050 Moped 
1070 Lastbil & Truck 
NULL --Section2-- 
2010 Bygg och Trädgår 
2020 Möbler & Heminredning 
2030 Husgeråd & Vitvaror 
2040 Verktyg 

HTML:

 <?php $count = 0; ?> 
     <?php foreach($categories as $category): $count++;?> 

       <?php if($category['catId']==NULL){?> 

        <optgroup label="<?php $category['catName']?>"> 

       <?php } else{ ?> 

        <option value="<?php echo $category['catId'];?>"><?php echo $category['catName'];?></option> 
        <?php 
        $temp = $categories[($count+1)]; 
        if($temp['catId']==NULL)?> 
          </optgroup> 
       <?php } ?> 

      <?php endforeach;?> 

     </select> 
+0

のvar_dump($カテゴリ)。 – Matt

+0

あなたはより具体的になることができますか? –

+0

$ categories変数の内容を調べて、それが含まれるはずのものが含まれていることを確認します。 – Matt

答えて

1

これを試してみてください:

<?php $first_opt = TRUE; ?> 

    <?php foreach($categories as $category): ?> 

      <?php if($category['catId']==NULL){?> 

       <?php if($first_opt):?> 
        <optgroup label="<?php echo $category['catName']?>"> 
        <?php $first_opt = FALSE;?> 
       <?else:?> 
        </optgroup><optgroup label="<?php echo $category['catName']?>">     
       <?endif;?> 

      <?php } else{ ?> 

       <option value="<?php echo $category['catId'];?>"><?php echo $category['catName'];?></option> 

      <?php } ?> 

     <?php endforeach;?> 
    </optgroup> 
    </select> 
+0

ありがとうございます:D –

関連する問題