在 PHP 和 POST 选定值中拥有动态下拉列表的最佳方法是啥
Posted
技术标签:
【中文标题】在 PHP 和 POST 选定值中拥有动态下拉列表的最佳方法是啥【英文标题】:What is the best way to have a dynamic dropdownlist in PHP and POST selected value在 PHP 和 POST 选定值中拥有动态下拉列表的最佳方法是什么 【发布时间】:2010-04-10 17:40:58 【问题描述】:我正在用 php 编写以下内容: 我想要 2 个下拉列表,其中第二个是根据在第一个下拉列表中所做的选择从 mysql dB 填充的。然后我想使用下拉列表中选定值的值来调用另一个 PHP 页面,在该页面中我将生成一个 db 查询。
例如: 清单 A:汽车制造商(本田、日产等) 清单 B:车型(雅阁、思域等)
然后我会有一个提交按钮,将值发布到另一个 PHP 文件中? (我有如何在没有动态列表的情况下执行上述操作的基础知识,但我尝试使用 AJAX 进行此操作,但在传递第二个下拉列表的值时遇到问题)
关于如何执行上述操作的任何提示?
【问题讨论】:
您对问题的实际出处在哪里不是很具体。请添加一些代码示例或更具体(例如“AJAX 查询没有返回任何内容”)。 我刚刚发现这个教程似乎可以解决我的问题。 plus2net.com/php_tutorial/php_drop_down_list.php 【参考方案1】:您应该有一个单独的 PHP 文件(我们称之为 search.php
),它将接受一个 POST 变量(我们称之为 make
)并运行一个查询,该查询将输出一个列表。
在它吐出列表后(每行一个model
,以\n
结尾)你应该有一些javascript,然后将它扔到第二个下拉列表中。
点击提交按钮应该只是一个表单 POST 到另一个 PHP 文件。
【讨论】:
可以举个例子吗?我正在做与您所说的类似的事情,但我无法解决问题。当我去 search.php 并填充下拉列表时,一旦我进入原始页面,我就无法保留所选值。还是建议不要去原页面? 不要返回原始页面或使用另一个 AJAX 调用。 This page is almost exactly what you're trying to do。你或许可以借用一些 JS 和流控制的想法。【参考方案2】:我建议一开始不要使用 AJAX。
只需使用 GET 方法制作第一个表单。因此,在提交此表单后,您将在第二个脚本上使用经典的 ?choice=1 查询字符串。因此,您可以使用 $_GET['choice'](当然是经过适当清理)来查询数据库并填充第二个选择。
别忘了添加
<input type="hidden" name="choice" value="<?php echo htmlspecialchars($_GET['choice'])?>">
到第二种形式
【讨论】:
【参考方案3】:在这里找到的解决方案: http://www.plus2net.com/php_tutorial/php_drop_down_list.php
【讨论】:
以上是关于在 PHP 和 POST 选定值中拥有动态下拉列表的最佳方法是啥的主要内容,如果未能解决你的问题,请参考以下文章