我是一个初学者,试图生成尽可能多的自己的代码,而不是不断地要求其他人为我编写代码,所以关于这个问题,我正在寻找正确方向的提示,而不是直接的工作示例。你们都很有才华,但如果我自己推理出来,我学得最好。如果我碰壁了,我一定会询问具体细节。 :-)
我想为 MySQL 查询构建一个表单,该表单具有相当多的复选框选项,但大多数用户在一次搜索时不会同时对所有选项感兴趣。我不想呈现一个巨大的表单,而是希望通过前几个选项来控制有多少后续选项可供选择,而无需进入新页面(如果可能)。
假设示例:电影 Actor 数据库,其中包含每个 Actor 的国籍,通过选择 Actor 分类,表单查询将返回他们一起出现的所有电影。
ACTOR NATIONALITY
[] Any
[] German
[] Russian
[] British
[] American
[] Japanese
[] Chinese
起初没有显示更多信息。如果用户检查[] Any
,则会显示完整的表单:
German Russian British American Japanese Chinese
[]GER1 []RUS1 []BRIT1 []AMER1 []JPN1 []CHN1
[]GER2 []RUS2 []BRIT2 []AMER2 []JPN2 []CHN2
[]GER3 []RUS3 []BRIT3 []AMER3 []JPN3 []CHN3
etc.
但如果用户只对德国和日本 Actor 感兴趣,他会选中这两个框,然后下面会出现以下内容:
German Japanese
[]GER1 []JPN1
[]GER2 []JPN2
[]GER3 []JPN3
我说得有道理吗?
目前我的编码知识仅限于 PHP/MySQL,因此仅包含 PHP 的解决方案是理想的,但如果需要 javascript,请为我指出正确的方向,我将努力添加必要的知识!
谢谢!
编辑 - 是的,所有复选框信息都是从数据库中提取的
最佳答案
我想用javascript。
我可能会将子选择放在 TD 或 DIV 中,并使用 style="display:none"隐藏它们,并在复选框 onclick 事件上,如果选中该复选框,我会将特定的 TD 设置为可见。您还可以添加更多 JavaScript 代码,以确保隐藏 TD 或 DIV 中的复选框未被选中。并在 PHP 端再次进行一些验证。如果选中 ANY,则让您的功能显示所有 TD 或 DIV。
更多信息:
据我所知,这需要最少的 JavaScript。 PHP 也应该非常简单,因为您只需拉动所有内容并在页面上回显,并且只隐藏 DIV 以防止用户看到,除非他实际上想看到它。使用 PHP 会增加页面负载,除非您使用 AJAX,这可能有点矫枉过正。
所以你将主要处理来自 javascript 的 style 属性的 display 属性,应该很简单。
关于php - 有关为 mysql 查询编写动态表单的提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1684824/