簡體   English   中英

MySQL數據庫的PHP編輯表單 <option>提取后值不正確

[英]PHP Edit form for MySQL database <option> value is not correct after a fetch

我在php中有一個Edit表單,並且一切正常。 我唯一的問題是,當我單擊“編輯”時,它將返回除“選擇”下拉列表中的所有數據。 它沒有選定的類別,它始終顯示列表中的第一個值。 但是我然后可以單擊下拉列表並選擇一個新類別,它可以正常工作。

//Query the category table
$resultSet = $con->query("SELECT * FROM schedule_category");

<select id="schedule_category" name="schedule_category" class="custom-select">
              <?php
               while($rows = mysqli_fetch_assoc($resultSet))
                {
            ?>
<option value = "<?php echo($rows['schedule_category'])?>">
         <?php echo($rows['schedule_category']) ?>
        </option>
        <?php
                }
                 ?>
               </select>

I would like to have it show the correct select option record not the first one in the drop down list. Here is an image of what happens https://imgur.com/a/XVXQ2Sa

您需要讓您的代碼將每個代碼與所選值進行比較,並添加適當的關鍵字:

$previous_selection = // whatever it is, from your data
  while($rows = mysqli_fetch_assoc($resultSet))
  {
  $thisone = $previous_selection == $rows['schedule_category'] ? " selected " : "";
  echo '<option value = "';
  echo ($rows['schedule_category']) . '"' . $thisone . '>';
  echo($rows['schedule_category']) . '</option>';
}

您在這里所做的是將您先前選擇的值與每一行進行比較,當匹配時,變量$thisone設置為“ selected”,否則為空。 然后,您將其添加到值之后,選項的結束標記之前的每個選項行,並且在值匹配時將添加“已選擇”。

另外,我個人不喜歡出於無緣無故地切入和退出PHP,這使得它真的很難閱讀,因此我在這里回顯了HTML的各個方面。

ETA-實際上,可以進一步簡化它,如果您選擇的值與列表中顯示的文本相同,則無需在option標簽中實際指定該值。 僅當值不同於顯示時才需要這樣做,例如,如果您希望用戶看到您的類別名稱,但是您想提交類別ID。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM