如何使用SELECT查询获取当前值


How to get the Current Value using SELECT query

我有这个:

echo '<form>
    <select name="users" onchange="showUser(this.value)">';
echo '<option value="">Select a person:</option>';
$result = $conn->query("SELECT firstName,agendaID FROM agendas WHERE ownerID='" . $_SESSION["id"] . "'");
while ($row = $result->fetch_assoc()) {
    echo '<option value="' . $row['agendaID'] . '">' . $row['firstName'] . '</option>';
}
$result->close();
echo '
    </select>
    </form>';

showUser()脚本将根据从菜单中选择的内容在表中打印值。问题是在刷新页面时,select选项丢失并恢复到默认值,因此不再显示表。通过GET获得的id(当前选定选项的id),我如何设置选择以保持显示?

通过

告诉浏览器选择下拉列表的哪一行是当前选择的项
<option selected="selected" .....>

现在您只需要知道用户选择了什么,当您在$_GET或$_POST数组中单击submit时,这将发送到表单。由于您没有在<form>上指定method,因此它将是$_GET数组。

所以你需要测试哪个被选中了,然后像这样修改代码:

while ($row = $result->fetch_assoc()) {
    $sel = (isset($_GET['users']) && $_GET_['users'] == $row['agendaID'] ) 
           ? 'selected="selected"' 
           : '';
    echo '<option ' . $sel . ' value="' . $row['agendaID'] . '">' . $row['firstName'] . '</option>';
}

没错。当您没有指定值并且刷新页面时,所选值将变为默认值(第一个)。您可以使用localStorage保存选定的选项。添加showUser函数:

localStorage.setItem('usersValue', THE_JAVASCRIPT_VARIABLE);

将选择的值存储在localStorage中。要重置选定的值,可以使用JQuery:

var selectedValue =  localStorage.getItem('usersValue');
if(selectedValue !== null)
{
    $('select[name="users"]').val(selectedValue);
    showUser(selectedValue);
}

检查agentID是否与_GET相同:

echo '<form>
         <select name="users" id="users" onchange="showUser(this.value)">';
echo '<option value="">Select a person:</option>';
$sessionId = (int) $_SESSION['id'];
$result = $conn->query("SELECT `firstName`, `agendaID` FROM `agendas` WHERE `ownerID` = '{$sessionId}'");
while ($row = $result->fetch_assoc()) {
    $extra = '';        
    if (!empty($_GET['ID']) && (int) $row['agendaID'] == (int) $_GET['ID']) {
        $extra = 'selected';
    }
    echo "<option value='{$row['agendaID']} {$extra}>{$row['firstName']}</option>";
}
$result->close();
echo '</select>
    </form>';

$(document).ready()触发showUser($("#users option:selected").val())与选定值

根据get值向选项添加选定属性,并在页面加载时运行showUsers(选定值)函数。使用js获取所选值