【问题标题】:Create a dynamic select drop down list with php用php创建一个动态选择下拉列表
【发布时间】:2026-02-25 06:30:01
【问题描述】:

我有两个下拉字段,一个下拉选择字段包含美国所有州的硬编码。我想做的是当用户选择一个州时,调用一个 php 函数,该函数使用 api 来收集该州每个城市的名称。

我已经有了 api 并且可以访问 xml 数据。我想不通的是如何在选择状态时触发 php 函数而无需按下按钮。只需从下拉列表中选择一个州,然后在另一个下拉选择列表中显示城市,如果州已更改,则更新城市列表以显示当前所选州的城市。

这可能只用 php 吗?或者我需要像ajax这样的东西吗?我从未使用过 ajax。

【问题讨论】:

  • 这两种方法都可以,但是如果你想让它在不重新加载页面的情况下激活下一个下拉菜单,你需要使用ajax。我会推荐jQuery ajax,我发现这个库真的很容易使用(我对javascript不太擅长,但我可以让jQuery ajax工作)。
  • 感谢您的信息,我想我会尝试 jquery ajax。请问,如果只用 php 怎么办?
  • 如果不使用javascript,您将需要一个名为“Proceed”的submit 按钮,或者当您选择状态并单击提交时,它会重新加载保存在$_POST 中的状态。然后你运行你的API来抓取城市然后显示预先选择的状态下拉菜单,现在城市下拉菜单带有一个新的提交按钮......等等。
  • 我明白了,这就是我之前想做的事情。我认为使用 ajax 可能是呈现数据的更好方法。非常感谢
  • 这绝对是一个更好的方法!祝你好运!

标签: php xml


【解决方案1】:

你必须为此使用 ajax:

var state_id = selectedValue;// selected value of the state


        $.ajax({
            type: "GET",
            url: 'city_api.php?state_id='+state_id,
            contentType: "text/xml; charset=utf-8",
            dataType: "xml",
            success: function(data) {


                var output = '';
                    output += '<option value="NA">Select</option>';

                $(data).find("root").each(function() { //assuming first tag as root

                    $(this).find("city").each(function() {// assuming cities are inside city tag something like <city id="1">New York</city>

                        var city_name = $(this).text();
                        var city_id   = $(this).attr("id");

                        output  += '<option value="'+dst_id+'">'+dst_name+'</option>';

                   });
                });

                //output += '</select>';

                $('#city_dropdown').html(output);
            },
            error: function(data) {
                $('#city_dropdown').html('failure');
            }
        });

在您希望下拉菜单出现的地方

<div id="city_dropdown"></div>

不必成为 div。你可以使用

【讨论】:

    最近更新 更多