根据表单选项生成输出

时间:2012-09-27 00:50:19

标签: php javascript mysql ajax forms

我无情地搜索了这个,我找不到我的窘境的答案 - 我认为问题是我不确定要搜索什么!无论如何,我的问题是这个......

情境: 想象一下,为了论证,我们建立了一个数据库,你希望让用户能够根据各种标准生成食谱建议列表。

以网页的形式,我希望这是左侧的一系列下拉框。用户可以从下拉框中选择他们的过滤器选项,并在按下提交按钮后,将显示符合条件的食谱列表。

所以他们可以,例如选择'膳食类型','卡路里','烹饪时间',然后(点击提交后)取回适合该账单的食谱建议列表。

(理想情况下,它们会在不需要重新加载页面的情况下显示,并且会包含在滑块中以供浏览,但如果我将基础部分排序,我可能会破解该部分...)

要求: 我只需要知道 - 在最高级别 - 我将使用哪些技术来实现这一目标(以及它们如何协同工作的过程)。

我猜我需要一个带有标准的食谱的MySQL dB,然后使用表格和php从数据库中提取。这是对的吗?!

似乎有这样一个共同的要求,但我找不到如何实现这个目标的好读法。

3 个答案:

答案 0 :(得分:1)

查看准备语句的PHP指南。您基本上会针对数据所在的表编写一个select语句,其中select语句的where子句是用户在表单中选择的参数。

PHP Prepared Statements

您希望坚持使用预处理语句的原因是,它们通常使用SQL注入来防止通过表单对您网站的攻击。<​​/ p>

对于端到端解决方案,您的前端将提交到PHP页面,然后该页面将处理用户指定的条件,将这些条件转换为准备好的语句,该语句将从您的表中查找数据。表本身需要包含符合条件的列。这更多地涉及到数据库设计,这是一个更大的主题,但是有很多指南可供选择。

你真的想要将解决方案分解为子组件,然后找到各种指南来解决这些问题。祝你好运,希望这会有帮助。 :)

答案 1 :(得分:0)

过程:

1)用户进行选择并单击“提交”按钮。这将启动HTTP POST到PHP页面(可以是相同的PHP页面),您将收集这些信息。

2)用PHP打开MySql数据库连接。您需要知道SQL从MySql DB中提取数据。取决于数据库架构的布局方式。

3)拉出此信息后,将其显示为用户可以单击的复选框。

这是最低限度。

如果你想获得更多想象,你可以使用JQuery ajax帖子(http://api.jquery.com/jQuery.post/),这样页面就不会刷新。

祝你好运,我已经饿了。哈哈。

答案 2 :(得分:0)

当用户选择表单中的选项并提交它时,这将在服务器上运行PHP脚本。服务器检索选项参数,并使用它们构造SQL查询。例如,脚本可能包含以下内容:

$criteria = array();
if (isset($_POST['calories'])) {
    $criteria[] = 'calories < '.$_POST['calories']);
}
if (isset($_POST['time'])) {
    $criteria[] = 'cooking_time < '.$_POST['time']);
}
...
$query = 'SELECT * FROM recipes WHERE '.implode(' AND ', $criteria);

您使用mysqli或PDO等库来执行查询并获取结果。然后循环遍历结果,并将它们格式化为HTML表格,该表格将作为生成的网页返回给用户。

或者PHP脚本可以将结果作为JSON数据返回。您的网页可以使用AJAX从服务器获取此数据,然后使用JavaScript将其格式化为表格。