Intereting Posts
Как использовать метод yii \ base \ model: getAttributes () в Yii? Проблема маршрутизации с Slim framework Добавить разбивку на страницы в wordpress admin в моем собственном настроенном плагине Разница в датах с php Отчет, подготовленный Mysqli (предупреждение SQL-инъекций) FatFree не работает в производстве Есть ли какой-либо вред при запуске session_start () несколько раз по мере создания запроса на страницу (в php)? Symfony2 – Доктрина и FOSUserBundle – неправильные аннотации SQLSTATE : Общая ошибка: 1005 Не удается создать таблицу – Laravel 4 Каков самый простой способ отображения ошибок проверки для hasMany-ассоциаций в CakePHP 2.x? Компиляция php с модулями vs с использованием общих модулей? PHP: Как определить, содержит ли строка какие-либо специальные символы? Какие существуют методы инициализации объектно-ориентированной инфраструктуры PHP? Symfony2 и MVC – Является ли контроллер расширения хорошей практикой? Структура кодирования для списка действий

PHP и MySQL – как отобразить выбранное значение в раскрывающемся меню

Я делаю edit.php с отображением всех данных в форме из MySQL.
Все данные отображаются по форме правильно, но это не работает в раскрывающемся списке и текстовом поле.

Мне нужна помощь, и это мой код.

<form method="post" action="editdata.php"> <?php include 'config.php'; $id = $_GET['id']; $sqlTampil = "select * from data_korban Where kasus_id=$id"; $qryTampil = mysql_query($sqlTampil); $dataTampil = mysql_fetch_array($qryTampil); ?> 

Значение раскрывающегося списка по-прежнему является значением по умолчанию, а не выбранным значением, а TextArea пуст

 <select name="agama" id="agama" value="<?php echo $rows -> agama;?>"> <option value="Islam">Islam</option> <option value="Khatolik">Khatolik</option> <option value="Protestan">Protestan</option> <option value="Hindu">Hindu</option> <option value="Buddha">Buddha</option> <option value="Lain-Lain">Lain-Lain</option> </select> <textarea id="alamatkorban" rows="5" name="alamatkorban" value="<?php echo $rows -> alamatkorban;?>" cols="33"> </textarea> 

Спасибо за помощь

Самая большая проблема в том, что вы неправильно используете значения своей базы данных. mysql_fetch_array() не возвращает объект. Он возвращает массив. Таким образом, вы используете синтаксис массива ( $rows['key'] ), а не синтаксис объекта ( $rows->key ).

Просто проверьте, соответствует ли значение параметра значению $rows['agama'] . Если это так, добавьте selected атрибут.

 <select name="agama" id="agama"> <option value="Islam"<?php if ($rows['agama'] === 'Islam') echo ' selected="selected"'>Islam</option> <option value="Khatolik"<?php if ($rows['agama'] === 'Khatolik') echo ' selected="selected"'>Khatolik</option> <option value="Protestan"<?php if ($rows['agama'] === 'Protestan') echo ' selected="selected"'>Protestan</option> <option value="Hindu"<?php if ($rows['agama'] === 'Hindu') echo ' selected="selected"'>Hindu</option> <option value="Buddha"<?php if ($rows['agama'] === 'Buddha') echo ' selected="selected"'>Buddha</option> <option value="Lain-Lain"<?php if ($rows['agama'] === 'Lain-Lain') echo ' selected="selected"'>Lain-Lain</option> </select> 

Еще лучше было бы поместить все ваши параметры в массив и пропустить их, чтобы сгенерировать ваши параметры. Затем вы можете проверить их значения, когда вы их просматриваете. Это будет меньше кода, который будет легче поддерживать.

 <select name="agama" id="agama"> <?php $agamas = array('Islam', 'Khatolik', 'Protestan', 'Hindu', 'Buddha', 'Lain-Lain'); foreach ($agamas as $agama) { $selected = ($rows['agama'] === $agama) ? ' selected="selected"' : ''; ?> <option value="Islam"<?php echo $selected; ?>>Islam</option> <?php } ?> </select> 

Чтобы исправить проблему с текстом, <textarea> не имеет атрибута value . Вам нужно разместить контент между тегами <textarea></textarea> :

 <textarea id="alamatkorban" rows="5" name="alamatkorban" cols="33"><?php echo $rows['alamatkorban'] ;?></textarea> 

Хорошо давайте предположим, что есть переменная, которая содержит выбранное значение, и мы называем его $selected а опции для нашего выбора будут храниться в $options .

 $selected = "Buddha" ; $options = array('Islam', 'Khatolik', 'Protestan', 'Hindu', 'Buddha', 'Lain-lain'); 

В файле edit.php вы должны попробовать создать элемент select через php echo

 <?php foreach($options as $option){ if($selected == $option){ echo "<option selected='selected' value='$option'>$option</option>" ; }else{ echo "<option value='$option'>$option</option>" ; } } ?> 

опция, которую вы хотите выбрать, должна иметь свойство «selected» в теге option.

Ислам.

Содержимое текстового поля должно существовать внутри открытого / закрытого, например

 <textarea id="alamatkorban" rows="5" name="alamatkorban" cols="33"><?php echo $rows -> alamatkorban;?></textarea> 

Вы неправильно textarea значение вашего textarea . Для textarea нет textarea . То, что вам нужно добавить в textarea выглядит следующим образом:

 <textarea id="alamatkorban" rows="5" name="alamatkorban" cols="33"><?php echo $rows -> alamatkorban; ?></textarea> 

Похоже, у вас проблемы с <textarea> Как уже упоминалось, теги <textarea> не используют свойство value , но вместо этого вы изменяете внутренний HTML, поэтому у вас есть:

  <textarea>Text inside the text area is written here, like <?php echo $var; ?></textarea> 

Другая проблема заключается в том, что в теге вам нужен параметр «Выбранный» для опции, которую вы хотите выбрать по умолчанию. Так:

  <select id="selector"> <?php $optionArray=array("Option 1","Option 2","Option 3"); foreach ($optionArray as $option){?> <option id="<?= $option? >"<? if ($rows[$option]==$option){ echo " selected"; } ?>><?= $option ?></option> <?}?> 

Должно это сделать – таким образом вы можете сохранить все свои параметры в массиве, который просто зацикливается. Тегами <?= ($var) ?> Являются короткие теги php, эквивалентные <?php echo ($var); ?> <?php echo ($var); ?> чтобы вещи были немного короче.

Вы можете попробовать это … textarea должно существовать внутри открытого / закрытого, например

 <textarea rows="5" cols="33" id="alamatkorban" name="alamatkorban" autofocus autocomplete="off"><?php echo @$row["alamatkorban"]; ?></textarea>