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

时间:2014-06-09 10:42:31

标签: php html ajax

我有这个:

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),如何设置选择以保持显示?

4 个答案:

答案 0 :(得分:1)

您可以使用

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

所以现在你只需要知道用户选择了什么,当你点击$ _GET或$ _POST数组中的提交时,这将被发送到表单。由于您未在method上指定<form>,因此它将是$ _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>';
}

答案 1 :(得分:0)

没错。如果未指定值并刷新页面,则所选值将变为默认值(第一个)。您可以使用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);
}

答案 2 :(得分:0)

只需检查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())触发器{{1}}上选择值

答案 3 :(得分:0)

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