2012-09-27 112 views
0

我已经无情地搜索了这个,我无法找到我的窘境 - 我想问题是我并不确定要搜索什么!总之,我的问题是这样的......基于表单选项生成输出

场景: 想象一下,有一个数据库,为了讨论各种情形,食谱,你想给用户产生的基于各种标准配方建议列表的能力。

以网页的形式,我希望这是左边的一系列下拉框。用户将从下拉框中选择他们的过滤器选项,并在按下提交按钮后,将呈现符合标准的配方列表。

因此,他们可以选择'膳食类型','卡路里','烹饪时间',然后(在提交后)找回符合条例草案的食谱建议清单。

(理想情况下,他们似乎无需重新加载页面,将包含一个滑块内浏览,但我可能能破解这一部分,如果我得到的基本部分来分类...)

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

我在猜测我需要一个带有标准标签的食谱的MySQL dB,然后使用表单和php从数据库中提取。它是否正确?!

好像这样一个共同的要求,但我可以找到关于如何实现这一目标没有良好的阅读..

+0

你只需要你加了标签的技术......,这一切我只能说真的,这个问题的剩下的只是打开方式。 – Erik

+0

您需要为收件人定义数据库结构,如果您设置正确,过滤将非常简单。 – jeroen

回答

1

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

PHP Prepared Statements

你要坚持到准备好的语句的原因是,他们一般都反对用通过表单您的网站,利用SQL注入攻击更加安全。

对于端对端的解决方案,您的前端将提交给一个PHP页面,然后将处理由用户指定的标准,翻译成那些准备好的声明,将从您的表中找到数据。表格本身需要有符合标准的列。这更多地涉及到数据库设计,这是一个更大的话题来覆盖这里,但有很多指南在那里。

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

+0

谢谢!您提供的链接上的选项#3,对吗?用准备提取数据 –

+0

是的,就是那个。还有其他的导游围绕这种事情,这是值得的概念读了。这也是非常方便的,因为你不必担心打交道的人提交的内容与它的报价等制备的报表将有助于处理这一切。 – Winterblink

0

的过程:

1)用户,使选择和点击提交按钮。这将启动一个HTTP POST到一个PHP页面(可以是相同的PHP页面),您将在这里收集这些信息。

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

3)一旦你拉这个信息显示他们作为一个复选框,用户可以点击。

这是最低限度。

如果你想得到更多的花式,你可以使用jQuery ajax post(http://api.jquery.com/jQuery.post/),这样页面就不会刷新。

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

+0

您需要'GET'来检索数据,而不是'POST'。 – moonwave99

+0

你也可以使用。当脚本处理POST时,它会返回一个文档作为结果显示。 – Barmar

+0

感谢您的回应!有道理,我认为我在正确的轨道上... –

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将其格式化为表格。