需要在数据库中的选择框中显示选定的值以及未选定的值 - php codeigniter

我被什么东西困住了。我正在使用代码点火器。

问题是我正在使用自定义 CMS,我正在编辑页面上工作。

有两张表,第一个是tours,第二个是 tours_cat

表名:游览

http://img3.mukewang.com/619765220001826b13210542.jpg

表名:tours_cat

http://img1.mukewang.com/6197652f0001293c11510297.jpg

我写了一些代码来从游览表中获取选定的游览信息,而对于类别,我只得到了 cat_id,所以我编写了一些代码来使用这些 cat_id 来获取类别名称。


以下是代码:


<select id="tour_category" class="form-control" name="tour_category[]" multiple="multiple" required>

 <?php

  $catIds = explode(',', $tours->tour_page_category);

  foreach ($catIds as $cid) {

   foreach ($categories as $c) {

    if($cid == $c['id'])

     {

       echo '<option value="'.$c['id'].'" selected>'.$c['cat_name'].'</option>';

     }

    }

   }

 ?>

</select>

这是来自Tour表的$catIds数组:


Array

(

    [0] => 2

    [1] => 3

    [2] => 4

    [3] => 5

    [4] => 6

    [5] => 7

)


饮歌长啸
浏览 198回答 1
1回答

神不在的星期二

tours您应该遍历表中的所有类别,而不是迭代表中的类别tours_cat,并使用表中的类别 idtours来决定是否selected为每个选项设置。像这样的东西:$catIds = explode(',', $tours->tour_page_category);foreach ($categories as $c) {&nbsp; &nbsp; echo "<option value =\"{$c['id']}\"";&nbsp; &nbsp; if (in_array($c['id'], $catIds)) echo " selected";&nbsp; &nbsp; echo ">{$c['cat_name']}</option>";}输出<option value ="1">Uncategorized</option>&nbsp;<option value ="2" selected>Family</option>&nbsp;<option value ="3" selected>Religion&Spirituality</option>&nbsp;<option value ="4" selected>Wildlife</option><option value ="5" selected>Cuisine(FoodTours&FoodWalks)</option>&nbsp;<option value ="6" selected>BoatTrips</option>&nbsp;<option value ="7" selected>ShortTours(HalfDaytours/WalkingTours/DayExcursions)</option>&nbsp;<option value ="8">WeekendGateways</option>
打开App,查看更多内容
随时随地看视频慕课网APP