php - 双下拉列表值

标签 php javascript jquery ajax

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

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

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

最佳答案

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

Retrieve all values from database using plain PHP then store them in javascript variable, later search for second drop down list value (if first drop down list's value changes)in the javascript (array) variable.

优点:

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

缺点:

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

If first drop down list's value changes then retrieve values for second drop down list from database using AJAX(jQuery).

优点:

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

缺点:

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

如果数据量比较大,对性能要求不高的话,我个人更喜欢方法2。

关于php - 双下拉列表值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13550630/

相关文章:

javascript - 如何在codeigniter的 Controller 中调用javascript函数?

ajax调用中的php json响应

javascript - angular.copy() 和 Object.assign() 有什么区别?

jquery - 检查哪个样式表处于事件状态并隐藏 div

php - 从 GET 请求中删除等号 "="

javascript - Sequelize "WHERE"子查询中的子句

javascript - 使用 jquery 插件拖放表列

javascript - 如何在 jquery 列表中动态添加 <li> 标签?

javascript - jQuery offset() 或 position()——当靠近另一个元素时改变一个元素的属性

javascript - 在 Cloud9IDE 上用 PHP 创建新文件