Как вызвать значения в PHP для пользовательского ввода в формах (переключатели и селекторы) - PullRequest
0 голосов
/ 18 марта 2010

Хорошо, поэтому мой админ решил отредактировать созданную книгу. Я знаю, как ввести значения, которые были первоначально введены через простое текстовое поле, например, «имя книги». На странице редактирования книги в поле имени книги хранится текущее назначенное «имя книги» в поле (что я и хочу! :))

Однако у меня есть другие типы полей, такие как селекторы и записи переключателей ... У меня проблемы с вызовом уже установленного значения при создании книги.

Например, есть поле 'booklevel', которое я установил в качестве записей переключателей; Сложно, Нормально и Легко. Когда пользователь отправляется на редактирование книги, я не очень уверен, как составить текущее значение (сохраненное в виде текста) и проверить переключатель. То есть «Обычный» проверяется, установлен ли он при создании книги. Пока что у меня есть код для добавления уровня книги:

<label>Book Level:</label> <label for="booklevel1" class="radio">Hard
<input type="radio" name="booklevel" id="booklevel1" 
value="<?php echo 'Hard'; if (isset($_POST['booklevel'])); ?>"></label>

<label for="booklevel2" class="radio">Medium<input type="radio" name="booklevel"
id="booklevel2" 
value="<?php echo 'Normal'; if (isset($_POST['booklevel'])); ?>"></label>

<label for="booklevel" class="radio">Low<input type="radio" name="booklevel"
id="booklevel3" 
value="<?php echo 'Easy'; if (isset($_POST['booklevel'])); ?>"></label>

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

<?php echo $row['bookname']?>

Я также заметил небольшую проблему при вызове значений для опций выбора. У меня есть раскрывающееся поле выбора, отображающее текущего установленного пользователя (для чтения книги!), Однако в раскрывающемся меню снова отображается пользователь в списке доступных вариантов выбора - в основном это означает, что в списке появляются 2 одинаковых имени! Есть ли способ устранить значение опции SELECTED? Пока что мои настройки для этого:

<select name="user_id" id="user_id">


        <option value="<?php echo $row['user_id']?>" SELECTED><?php echo $row['fullname']?></option>

         <?php  
     while($row = mysql_fetch_array($result))
  { ?>      <option value="<?php echo $row['user_id']?>"><?php echo $row['name']?></option>
        <?php } ?>

        </select>

Если кто-нибудь сможет мне помочь, я буду очень благодарен. Извините за невероятно длинный вопрос !! :)

Ответы [ 2 ]

2 голосов
/ 18 марта 2010

Для переключателей просто добавьте атрибут checked="true", если текущее значение кнопки соответствует значению, которое у вас уже есть. Для раскрывающегося списка не используйте первые option, которые у вас есть, но вместо этого используйте ту же технику, что и переключатели, но с selected="true".

1 голос
/ 18 марта 2010

Проверьте, какая строка хранится в БД (легко, нормально, сложно), а затем установите для поля checked значение «флажок». Например:

<label>Book Level:</label> <label for="booklevel1" class="radio">Hard
<input type="radio" name="booklevel" id="booklevel1" 
value="hard" <?php if($row['booklevel'] == 'hard') echo 'checked="checked"'; ?>></label>

Что касается второй части - вам нужно сохранить первое значение $row['user_id'] во временной переменной перед входом в цикл while. Затем проверьте каждый дополнительный полученный user_id, чтобы определить, равен ли он. Если это так, не печатайте его опцию. Вот так:

<?php

$tmp = $row['user_id'];
while($row = mysql_fetch_array($result)) {
    if($row['user_id'] != $tmp) {
        echo '<option value="'.$row['user_id'].'">'.$row['name'].'</option>';
    }
}

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