亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 PHP 中提交后保留下拉值

在 PHP 中提交后保留下拉值

PHP
陪伴而非守候 2023-11-03 16:57:57
我有一個來自 Oracle 數據庫的下拉菜單。當我選擇一個下拉值并單擊“顯示詳細信息”按鈕時,會顯示詳細信息,但下拉列表默認返回列表中的第一個。我需要它保持所選值。我正在 PHP 中執行此操作我已經嘗試過,但它無法識別<form name= "fund" method="post" > <label id= "fund" for="fund">Fund:</label> <Select  name="fund" id="fund"><option value="--Select A Fund--">--Select a Fund--</option> <?php  $sql = 'SELECT Account_name ||\' - \'|| Fund_id as FUND, FUND_ID FROM FUND_ACCOUNTS';      $stid = oci_parse($conn, $sql);      $success = oci_execute($stid);      while ($row = oci_fetch_array($stid, OCI_RETURN_NULLS+OCI_ASSOC))       {           $selected = (!empty($_POST['fund']) &&  $_POST['fund'] == $row['FUND']) ? 'selected' : '';      echo '<option value="' . $row['FUND'] . '" ' . $selected . '>' . $row['FUND'] . '</option>';     }              ?>         </select>          <input type="submit" name="fund"                    value="Show Current Fund Investors"/>         </form>             <BR>        <?php     echo 1 . $row['FUND'];      echo 1 . $_POST['fund'];             ?>但 $selected 從未被填充。不知道從這里去哪里,而且我不是網絡開發人員。有什么想法我哪里出錯了嗎?最終回顯的輸出是11Show Current Fund Investors
查看完整描述

1 回答

?
狐的傳說

TA貢獻1804條經驗 獲得超3個贊

可能這一行只需要這樣做:


$selected = (!empty($_POST['fund']) &&  $_POST['fund'] == $row['FUND'])) ? 'selected' : '';

您所擁有的是將默認選項與您實際從下拉列表中選擇的選項相匹配 || ($row['FUND'] == '--Select A Fund--'),并且可能還添加到該默認選項中。selected在瀏覽器中查看頁面源代碼,該selected屬性可能有兩個選項。


默認情況下,如果未選擇任何內容,它只會顯示下拉列表中的第一項--Select A Fund--。


另外,您可能應該在$selected變量之前和引號之后有一個空格:


echo '<option value="' . $row['FUND'] . '" ' . $selected . '>' . $row['FUND'] . '</option>';

應該出來:


<option value="whatever" selected>Whatever</option>

編輯


根據您的編輯,您需要從提交按鈕中刪除名稱屬性,或對其進行重命名。這和你的select名字有沖突。


<input type="submit" value="Show Current Fund Investors"/> 

一個提示:


您應該將對該列表的獲取封裝在一個函數中(至少)并將其包含在頂部的頁面中:


/functions/fetchFundAccounts.php


<?php

function fetchFundAccounts($conn)

{

    $stid = oci_parse($conn, 'SELECT Account_name ||\' - \'|| Fund_id as FUND, FUND_ID FROM FUND_ACCOUNTS'); 


     $success = oci_execute($stid);

     $results = [];

     while ($row = oci_fetch_array($stid, OCI_RETURN_NULLS+OCI_ASSOC)) {  

         $results[] = $row;

     }

     return $results;

}

使用方法:


<?php include(__DIR__.'/functions/fetchFundAccounts.php') ?>


<form name= "fund" method="post" >

    <label id= "fund" for="fund">Fund:</label>

    <select  name="fund" id="fund">

        <option value="--Select A Fund--">--Select a Fund--</option>

        <?php foreach(fetchFundAccounts($conn) as $row): ?>


        <option value="<?php echo $row['FUND'] ?>" <?php echo (!empty($_POST['fund']) &&  $_POST['fund'] == $row['FUND']) ? 'selected' : '' ?>><?php echo $row['FUND'] ?></option>


        <?php endforeach ?> 

    

    </select> 

    <input type="submit" value="Show Current Fund Investors"/> 

</form> 


查看完整回答
反對 回復 2023-11-03
  • 1 回答
  • 0 關注
  • 121 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號