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>
- 1 回答
- 0 关注
- 88 浏览
添加回答
举报