我有一个ExpressionEngine网站,我正在使用Bootstrap构建。这是志愿者寻找帮助项目的网站。在主页上,我有一个模板,其中有一个表单可供他们选择何时可用以及他们正在寻找哪些类别的工作。然后他们可以点击提交,它将转到带有过滤条目的新页面。
我不知道在表单上使用GET方法或POST方法是否可行。我已经想出如何使用GET方法并在我的URL中获取查询字符串,但我不知道如何使用该数据来过滤条目页面上的条目。或者使用POST和JSON是更好的选择?我真的不知道如何实现,所以任何帮助都会很棒。
非常感谢!
答案 0 :(得分:1)
这取决于您希望显示的信息的存储方式。
如果您正在使用MySQL(常见的RDMS)或任何其他形式的SQL数据库,最常见的方法是将您的GET查询字符串(例如)发送到您的服务器,使用服务器端语言(例如PHP)通过访问您的数据库来处理该请求,然后回显结果。这可以同步完成,也可以与AJAX一起完成。
例如,所有内容的流程可能如下所示:
用户选择一个选项(例如“园艺项目”)。
JavaScript将该输入选项的值转换为查询字符串,并使用GET方法发送HTTP请求。
此请求的目的地是“filter.php”(例如)。
“filter.php”使用SQL查询访问您的数据库,该查询搜索数据库中的任何条目,例如标记为“gardening”。
“filter.php”回显包含这些条目的语句(或者,更好的是,返回一个JSON对象)
JavaScript然后将生成的JSON对象解析为DOM,在用户可以单击的结果区域中显示为一串链接。
关于如何处理这个问题的问题非常广泛,所以我建议您只需进行一些Google搜索或查看此网站,查找资源,了解如何设置数据库,使用可能的PHP / SQL访问这些数据库,甚至可能使用AJAX来返回这些结果等。
为了让你开始(这些没有特别的顺序):
答案 1 :(得分:0)
我在@JoshBeam的帮助下弄明白了。事实证明,我试图让它变得比实际更复杂。菜鸟错了。最后,我最终在表单中使用了method=get
,并将操作设置为包含已过滤条目的页面。然后我使用php将输入回显到我的EE通道:entries标签。
我仍然没有想到的一件事是如何使它成为我的查询字符串将组合匹配名称的值。目前,我有一周中几天的复选框,每个复选框都有name="day"
,每天都有不同的值。如果有多个已检查,我的查询字符串将变为example.com/?day=sun&day=mon,而我更愿意将其作为example.com/?day=sun&mon。所以,如果有人有任何提示,我会欢迎他们!我还想知道当我在EE标签中回显它们时,是否有办法在每个值之间添加管道,这样我就可以有倍数 - 例如{exp:channel:entries category="1|2|3"}
。但我真的还没有谷歌这些问题,所以我会这样做。
谢谢!