我一直在寻找解决这个问题的方法很长一段时间,但我认为是时候解决它了。 如果我有一个带有下拉菜单的页面,那么无论如何我可以选择一个值,该值随后会进一步加载其他值。
这可以在没有页面重新加载的情况下完成吗?
我会举个例子。 假设我正在为管理面板制作一些工具,但首先他们需要选择要使用的成员。 他们将选择成员然后在下面,将根据在第一个菜单中选择的内容填充有关该成员的字段。
正如我已经问到的,这可以在没有页面重新加载的情况下完成吗?
感谢阅读。
答案 0 :(得分:3)
是的,没有AJAX就可以完成。呈现页面时,将下拉列表中将作为JSON对象使用的所有集合传递给HTML:
var collection = [{ id: 1, name: 'John' }, { id: 2, name: 'Smith' }];
...
然后注册第一个下拉列表的更改事件并根据所选值go并从其他集合中获取数据。当然,如果您有大量数据,这可能不实用,因为您的页面会变得非常大,在这种情况下,AJAX会更合适。
答案 1 :(得分:1)
回答是的,可以做到。
首先,您需要一个事件,在这种情况下,您需要对selectBox的 onChange 事件采取措施。因此,当项目发生变化时,您将运行一个函数。
现在您有2个选择。你可以使用AJAX或NOT来做到这一点,它实际上取决于你的应用程序的复杂性/安全性。
以下我参考
方法1 - 没有AJAX
基础知识:您在首次加载页面时首先向下发送所有可能的显示选项,但在selectbox onchange事件期间仅显示与用户相关的部分。
建议用时:如果检测到隐藏的客户端数据(或者无法检测到,或者您只是信任您的受众以预期方式使用该应用),则无需提供安全保护。最后,当您的总视图排列很低时。
方法2 - AJAX
基础知识:您最初只向下发送页面框架,当用户更改选择框的值时,您会向服务器发出AJAX请求 - 获取与该用户相关的新视图信息,然后将其发回到一个将该用户数据注入DOM的脚本。
在以下情况下推荐:您有一个公共站点,或者考虑安全性的站点。您有大量视图排列或希望每个用户比场景1更多的自定义。
如您所见,两种方法都不需要重新发布 - 方法1预先发布所有内容,方法2使用AJAX在需要时填充数据。这两种方法都有效,具体取决于您的要求。
答案 2 :(得分:0)
是即可。 Ajax主要用于那个(没有页面重新加载)
您必须使用以下步骤来实现
onchange
函数