【问题标题】:Double drop down list value双下拉列表值
【发布时间】:2012-11-25 21:44:47
【问题描述】:

我正在考虑两个下拉列表,一个依赖于另一个。两个下拉列表都有来自数据库的值。在这种情况下,哪一个是最好的方法。

  1. 使用普通 PHP 从数据库中检索所有值,然后将它们存储在 javascript 变量中,然后在 javascript(数组)变量中搜索第二个下拉列表值(如果第一个下拉列表的值更改)。

  2. 如果第一个下拉列表的值发生更改,则使用 AJAX(jQuery) 从数据库中检索第二个下拉列表的值。

【问题讨论】:

  • 您的第二个下拉菜单包含第一个下拉菜单中的所有选项(以数字或记录表示)的数据量
  • @PankajKhairnar 第二个下拉菜单可以有大量数据。
  • 那么使用 ajax 是最好的解决方案,这将帮助您快速加载页面,稍后您可以使用 ajax 和 json 获取数据并可以显示在第二个下拉列表中。

标签: php javascript jquery ajax


【解决方案1】:

您指出的两种选择各有利弊,决定取决于这些利弊如何影响您的应用程序:

使用纯 PHP 从数据库中检索所有值,然后将它们存储在 javascript 变量,稍后搜索第二个下拉列表值(如果 javascript(数组)中的第一个下拉列表的值更改) 变量。

优点:

  • 最大限度地减少 http 请求,您只需一个请求即可检索整个数据。
  • 最大限度地减少对数据库的查询,通常只执行一个查询。

缺点:

  • 如果您有大量数据,则会增加使用的内存量。
  • 如果您的数据不断变化,您的访问者在刷新整个页面之前不会看到这些变化。

如果第一个下拉列表的值发生变化,则检索 使用 AJAX(jQuery) 从数据库中获取第二个下拉列表。

优点:

  • 您不需要将所有数据都存储在内存中,只需将要使用的数据存储,从而减少所需的内存量。
  • 您的数据每次都会更新,无需重新加载页面,只需更改选择。

缺点:

  • 每次选择更改时,您都需要执行多个 http 请求并针对数据库运行查询。

如果数据量比较大,性能不是必须的,我个人更喜欢方法二。

【讨论】:

    【解决方案2】:

    这取决于很多事情。

    您必须通过从数据库中获取数据来显示第一个下拉菜单,

    如果从下拉列表中选择的每个记录的数据很大,则使用 ajax 获取它,否则制作 js 变量并在选择第一个下拉列表时使用 javascript 填充它。

    根据您的标准,您最好晚点使用 Ajax 加载,这将使您的页面在加载时快速加载,您可以 使用 ajax 获取其他下拉列表的数据。

    【讨论】:

    • 在什么意义上更快,您希望您的页面应该快速加载,然后不要一次加载所有数据并使用 ajax 调用,如果您可以先加载加载页面有点慢然后首先加载所有内容
    • 我需要更快的第二个下拉数据填充。
    猜你喜欢
    • 1970-01-01
    • 2017-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-17
    相关资源
    最近更新 更多