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>

Благодарим вас за помощь

Ответ 1

Самая большая проблема в том, что вы неправильно используете значения своей базы данных. 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>

Ответ 2

Хорошо, допустим, что существует переменная, которая содержит выбранное значение, и мы называем его $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>" ;
        }
    }
?>

Ответ 3

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

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

Ответ 4

параметр, который вы хотите выбрать, должен иметь свойство "selected" в теге option.

Ислам.

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

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

Ответ 5

Похоже, у вас есть пара проблем: Как уже упоминалось, теги <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); ?>, чтобы сделать вещи немного короче.

Ответ 6

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

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