set class = 'selected' в нескольких тегах параметров (список / меню) - PullRequest
0 голосов
/ 25 июля 2011

Извините, я хочу задать вопрос новичку :)

У меня есть такие PHP-скрипты:

<select id="member">
 <?php
  $sql   = " select id,name from member order by name ";
  $query = mysql_query($sql);
  while($row=mysql_fetch_array($query))
  {             
 ?>
  <option value="<?php echo $row["id"]; ?>"><?php echo $row["name"]; ?></option>
 <?php
  }
 ?>                
</select>

тогда результат будет генерировать HTML как этот

<select id="member">
 <option value="1">Jon Skeet</option>
 <option value="2">Marc Gravell</option>
 <option value="3">Darin Dimitrov</option>
</select>

мой вопрос, на самом деле у меня есть 2 таблицы в MySQL, первая - member table и вторая member_invited table.
в член таблица:
id | имя
---------------
00 | Джон Скит
01 | Марк Гравелл
02 | Дарин Димитров


затем в member_invited таблица:
id | имя
---------------
00 | Джон Скит
02 | Дарин Димитров


в этих двух таблицах Я хочу, чтобы мой список был таким:
(посмотрите, что class = "selected" находится в теге option, который пригласил участник)

<select id="member">
 <option value="1">Jon Skeet</option>
 <option value="2" class="selected">Marc Gravell</option>
 <option value="3" class="selected">Darin Dimitrov</option>
</select>

Пожалуйста, не стесняйтесь использовать javascript или jquery, или, может быть, я могу решить это просто с помощью PHP?
большое спасибо:)

Ответы [ 3 ]

2 голосов
/ 25 июля 2011

Вы должны сделать это в MySQL с помощью соединения с таблицей member_invited, а затем расширить цикл while относительно флага is_invited из набора результатов

<?php
  $sql = "SELECT x.id,x.name,IFNULL(y.id,0) AS is_invited FROM member x LEFT JOIN member_invited y ON x.id=y.id ORDER BY x.name";
  $query = mysql_query($sql);
  while($row=mysql_fetch_array($query))
  {             
?>
<option value="<?php echo $row["id"]; ?>"<?php if ($row['is_invited']>0) { echo " class=\"selected\""; } ?>><?php echo $row["name"]; ?></option>
<?php
  }
?>
1 голос
/ 25 июля 2011

Попробуйте что-то вроде этого

$("#member option").each(function(){
    var $this = $(this);
   if($this.val() == "2" || $this.val() == "3"){
      $this.addClass("selected");
   }
});
0 голосов
/ 25 июля 2011

Возможно, вы захотите использовать что-то вроде этого, чтобы включить множественный выбор:

http://www.w3schools.com/tags/att_select_multiple.asp

И более умно делать то, что вы хотите на стороне сервера ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...