За последние 24 часа нас посетили 21802 программиста и 1019 роботов. Сейчас ищут 595 программистов ...

Отображение актуального значения <option>

Тема в разделе "PHP для новичков", создана пользователем Yarkee, 26 июн 2016.

Метки:
  1. Yarkee

    Yarkee Новичок

    С нами с:
    25 июн 2016
    Сообщения:
    13
    Симпатии:
    0
    Добрый день.
    У меня возникла следующая проблема.
    У меня есть страница редактирования материала и есть следующий код:
    PHP:
    1. <select class="form-control">
    2.                         <option>[Выберите участника]</option>
    3.                         <?php
    4.                         $sql=mysql_query("SELECT id, nickname FROM members");
    5.                         while($result = mysql_fetch_array($sql))
    6.                         {
    7.                             $id            =    $result['id'];
    8.                             $nickname    =    $result['nickname'];
    9.                             printf('<option value="'.$id.'">'.$nickname.'</option>');
    10.                         }
    11.                         ?>
    12. </select>
    Как понятно из кода, здесь нужно выбрать участника из списка, который есть в БД.
    Поскольку это страница редактирования, хотелось бы при открытии страницы видеть текущего участника. Каким образом это можно сделать?
     
  2. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.553
    Симпатии:
    1.754
    Прописать атрибут selected по if-у. Где хранится текущий участник? И зачем тебе printf, если ты шаблоны подстановки не юзаешь?
     
    Yarkee нравится это.
  3. Yarkee

    Yarkee Новичок

    С нами с:
    25 июн 2016
    Сообщения:
    13
    Симпатии:
    0
    PHP:
    1. $id = $_REQUEST['id'];
    2. $select_query = "SELECT * FROM battles WHERE battle_id = " . $id;
    3. $result = mysql_query($select_query);
    4. if ($result) {
    5.     $battle             = mysql_fetch_array($result);
    6.     $project_id            = $battle['project_id'];
    7.     $branch_id            = $battle['branch_id'];
    8.     $season_id            = $battle['season_id'];
    9.     $member_l_one_id    = $battle['member_l_one_id'];
    10.     $member_l_two_id    = $battle['member_l_two_id'];
    11.     $member_r_one_id    = $battle['member_r_one_id'];
    12.     $member_r_two_id    = $battle['member_r_two_id'];
    13.     $video_url             = $battle['video_url'];
    14.     $status             = $battle['status'];
    15.     $type                 = $battle['type'];
    16.     $judge_1_id            = $battle['judge_1_id'];
    17.     $judge_2_id            = $battle['judge_2_id'];
    18.     $judge_3_id            = $battle['judge_3_id'];
    19.     $judge_4_id            = $battle['judge_4_id'];
    20.     $judge_5_id            = $battle['judge_5_id'];
    21.     $judge_6_id            = $battle['judge_6_id'];
    22.     $judge_7_id            = $battle['judge_7_id'];
    23.     $leader_id            = $battle['leader_id'];
    24.     $rating                = $battle['rating'];
    25.     $member_one_score    = $battle['member_one_score'];
    26.     $member_two_score    = $battle['member_two_score'];
    27.     $winner_id            = $battle['winner_id'];
    28. } else {
    29.     die("Ошибка обнаружения баттла с ID {$id}");
    30. }
    Вот здесь.

    Я не знаю, как использовать if внутри while :(
     
  4. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв
    Yarkee нравится это.
  5. Yarkee

    Yarkee Новичок

    С нами с:
    25 июн 2016
    Сообщения:
    13
    Симпатии:
    0
    PHP:
    1. <?php
    2.                         $sql=mysql_query("SELECT id, nickname FROM members");
    3.                         while($result = mysql_fetch_array($sql))
    4.                         {
    5.                             $id            =    $result['id'];
    6.                             $nickname    =    $result['nickname'];
    7.                             $selected    =     ($battle['member_l_one_id']==$id) ? 'selected' : 'selected';
    8.                             echo '<option value="'.$id.'" '.$selected.'>'.$nickname.'</option>';
    9.                         }
    10.                         ?>
    Сделал так, думаю, что не правильно, к тому же он пытается добавить это к каждому пункту, поэтому активен последний пункт...
     
  6. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв
    ты второе замени на '' чтобы пусто было когда не совпадает id, тогда selected будет только при совпадении, что тебе и нужно
     
  7. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.553
    Симпатии:
    1.754
    Кайф :)
     
  8. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв
    @mkramer хороший пример как сунуть палку в колесо самому себе