javascript - 根据用户 ID 限制下拉选项

标签 javascript jquery asp.net ajax database

我问这个问题是因为我不确定解决问题的最佳方法。

问题: 我有一个预填充的下拉列表,其中包含 1,000 个左右的数字。我需要根据使用下拉列表的用户来限制下拉列表中显示的数字。

我想到的解决方案:

  1. 用 jQuery 隐藏所有数字
  2. 使用 jQuery/AJAX 调用数据库,传递用户 ID
  3. 数据库根据用户 ID 返回值列表
  4. 在下拉列表中显示与从数据库返回的数字具有相同值的选项

假设这是我的 HTML:

<select>
<option>Please Select..</option>
<option value="101"> CC 101 </option>
<option value="102"> CC 102 </option>
<option value="103"> CC 103 </option>
<option value="104"> CC 104 </option>
<option value="105"> CC 105 </option>
<option value="106"> CC 106 </option>
</select> 

这是我的数据库表:

=======================
|   User1    |  101   |
|   User2    |  101   |
|   User2    |  102   |
|   User2    |  103   |
|   User3    |  103   |
=======================

例如,我需要弄清楚如何传递 user2 然后返回 101,102,103。

我只知道基本的 js/jQuery,我对 DB 不是很有经验,所以欢迎提出任何可以帮助我实现最终目标的建议。

编辑/注意:这听起来很愚蠢……安全在这里并不是什么大不了的事。这将在公司内部网站上使用,如果用户觉得需要四处寻找并选择不同的号码,那真的没什么大不了的。我也没有预见到公司的任何员工都希望/需要/想要选择与他们允许的不同的选项。

此外,列表必须预先填充,然后隐藏数字。这是我使用的平台的设置方式,所以我必须使用显示/隐藏或类似的东西。

最佳答案

我只会采用您方法的第 2-3 步;但是,我不会按照您显示的方式存储数字。更好的方法是将它们存储在一个名为 user_value 的表中——或类似的东西——:

user_id  |  value
---------+-------
user1    |  101
user1    |  102
user2    |  101

只是因为您以后可以轻松地添加/删除/更新值,而不必解析以逗号分隔的值。

我会避免使用 jQuery 来简单地“隐藏”东西,因为 Javascript 可以被用户禁用,他可能最终会提交他想要的任何值(可见或不可见)——永远不要相信用户输入。

最后这样做:

  1. 使用 jQuery/AJAX 调用数据库,传递用户 ID
  2. 数据库根据用户 ID 返回值列表
  3. 使用从数据库返回的值填充下拉列表。
  4. 在服务器端验证表单以确保提交的值存在于 user_value 表中。

关于javascript - 根据用户 ID 限制下拉选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23253609/

相关文章:

c# - 如何在同一个 Visual Studio 解决方案中设置 ASP Classic 和 ASP.NET WebForm - 用于在 ASP.NET WebForm 中重写 ASP Classic 页面

c# - 布局页面中的 asp.net mvc 登录表单(未找到部分 View 'LogIn')

javascript - 使用 ajax setTimeout 将信息显示到 div 中

javascript - 为什么这个 CoffeeScript 不编译 "correctly"?

jquery - 单击下拉列表时启用当前禁用的下拉列表

javascript - 如何切换其他引导按钮的内容?

asp.net - 将预加密的配置文件部署到生产环境

javascript - 如何使用 Express、Javascript 和 Handlebars 在 POST 请求中显示 URL 数据?

javascript - 使用 websockets 激活 HTML5 模式属性

jquery - Bootstrap 数据表列宽