【问题标题】:Load dropdown according to the value of another dropdown - without refreshing the page in PHP根据另一个下拉列表的值加载下拉列表 - 无需在 PHP 中刷新页面
【发布时间】:2009-04-24 06:15:19
【问题描述】:

我在 PHP 中创建了一个页面,因为我需要加载一个与 dropdown1 的值相对应的 dropdown2 而不刷新页面。这些下拉列表的值来自数据库。

我不想每次点击都刷新页面。

【问题讨论】:

    标签: php javascript


    【解决方案1】:

    当您将页面发送到客户端后,PHP 就完成了。你得到的只有 JavaScript。

    1. Ajax:当您选择第一个下拉菜单时,您可以使用 Ajax 调用。 define a function in JavaScript, so when an option in the first dropdown is selected, it will call a URL, and send the ID of the selected item to that URL, and fetch the XML result and use that to populate the second dropdown.

    2. JavaScript Arrays:这种方法和其他方法一样,不同之处在于两个下拉列表的所有数据都已经在页面中发送到客户端,作为 Javascript 对象或数组。通过从第一个下拉列表中选择一个选项,您的 JavaScript 函数将使用本地数组或对象填充第二个下拉列表,而不是调用 Ajax 调用。

    第二种方法的好处是更改第二个下拉列表更快,并且不需要另一个连接。但是第一次加载页面需要更长的时间,因为你所有的下拉数据都应该先加载。我在某些页面中使用了第二种方法,但如果您要为第一个下拉菜单的每个选项获取大量数据,则更好的方法是第一种。

    我建议对这些使用众所周知的框架,例如 jQuery。它会减轻你所有的 工作。您可以调用 ajax 调用,并轻松更改第二个下拉列表的子项。

    编辑:

    在第一种方法(AJAX 调用)中,我说过从 XML 加载数据。我的意思是建立一个到服务器的 AJAX 连接,到一些接受参数的 PHP 页面,比如第一个 select 标记中 selected 选项的值,然后在服务器上搜索数据库,获取相关结果并返回一个 XML 文档拥有第二个选择标签的所有值。在发出 Ajax 请求的 JavaScript 函数中,您可以解析该 XML 并根据结果 XML 即时为第二个选择标签创建选项标签。您的 PHP 脚本接受一个值,并且可以根据该值执行任何操作。 XML部分,只是一个传输工具。

    【讨论】:

    • 嗨,我自己是第一个 - 你要求只从 XML 中获取,但我需要从数据库中动态获取数据。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-13
    • 2020-08-16
    相关资源
    最近更新 更多