根据另一个下拉列表的值加载下拉列表 - 不用PHP刷新页面

时间:2009-04-24 06:15:19

标签: php javascript

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

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

1 个答案:

答案 0 :(得分:3)

两个当您将页面发送到客户端时,PHP已完成。所有你到那里都是JavaScript。

  1. Ajax:当您选择第一个下拉列表时,您可以使用Ajax调用。在JavaScript中定义一个函数,因此当选择第一个下拉列表中的一个选项时,它将调用一个URL,并将所选项的ID发送到该URL,并获取XML结果并使用它来填充第二个下拉列表。 / p>

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

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

    我建议使用一个众所周知的框架,比如jQuery。它会让你的所有人感到轻松 工作。你可以调用ajax调用,并轻松更改第二个下拉列表中的子项。

    编辑:

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