2010-03-18 1 views
0

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

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

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

<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> 

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

+0

'if (isset ($ _ POST ['booklevel']));' ничего не делает. У вас есть условное тело без тела. Это не отвечает на ваш вопрос, но это стоит отметить. – ryeguy

ответ

1

Проверьте, какая строка хранится в БД (простой, обычный, жесткий), а затем установите поле checked на отметку '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'] во временной переменной перед входом в то время цикла. Затем проверьте каждый дополнительный 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>'; 
    } 
} 

?> 
+0

Удивительно, это выглядит многообещающе, я попробую :) – Yvonne

+0

Это очень понравилось, но знаете ли вы, как удалить дубликаты записей в моем списке (выпадающем списке)? Текущая книга появляется сначала в раскрывающемся списке (по мере необходимости), но затем она появляется снова в остальной части книг? Есть ли этому решение? – Yvonne

+0

@Derek Отредактировал мой ответ, чтобы включить эту часть. –

2

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

+1

'checked' и' selected' являются логическими атрибутами, они принимают только одно значение - свое имя. 'checked = 'checked'' или' selected =' selected''. 'true' недействителен. – Quentin

Смежные вопросы