PHP:从下拉列表中显示用户所选选项的最佳方式

时间:2015-03-27 19:30:10

标签: php mysql

我有一个数据库中的城市列表。我想在编辑页面上的两个下拉列表中显示用户,所选源和目的地(如果他之前已经选择过),一个用于源,另一个用于目的地。

表格架构

用户表

-----------------------------
UID     |  RouteID
-----------------------------
        |
        |

路线表

-----------------------------
ID | From_city  |  To_city
-----------------------------
   |            |
   |            |

显而易见的方法是:

1)触发一个查询以获取用户选择的源和目标城市。 2)触发另一个查询以获取不同的源城市并选择用户选择的源城市。 3)触发第三个查询以获取不同的目的地城市,并选择用户选择的目的地城市。

我花了三个查询。

我可以进一步优化此过程吗?这里的主要目标是当用户没有在编辑页面上选择时,旧的选定值将通过表单提交。

修改

  1. 来源和目的地列表可以不同。
  2. 在编辑页面上,用户从他想去的地方选择。如果他已经选择了那个并且他仍然来到页面,我通过在下拉列表中选择它们作为默认值来显示之前选择的选项。这是因为如果他来到编辑页面,什么都不做并提交表单,我仍然会更新之前的选择。

1 个答案:

答案 0 :(得分:0)

您可以通过两个查询进行管理。

  1. 获取城市。
  2. 使用JOIN声明获取用户数据。
  3. 在视图中构建城市列表时,在foreach循环:

    foreach ($cities as $city){
      if($city->id_city == $user_data->from_city){
        echo '<option val="'.$city->id_city.'" selected="selected">..</option>'
      } else {
        echo '<option val="'.$city->id_city.'">..</option>'
      }
    }
    
  4. to_city执行相同操作。