在 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 选定值中拥有动态下拉列表的最佳方法是啥的主要内容,如果未能解决你的问题,请参考以下文章

从下拉列表 Select2 中的多个值中获取选定值

如何在引导下拉列表中获取选定元素,其中下拉列表是动态填充的

根据下拉列表中的选定过滤器列出数据库值

PHP & MySQLi - 在下拉列表中显示选定的值两次

从 sql server 获取选定的值到 php 中的下拉列表

如何将下拉列表中的选定值添加到数据库中?