2012-08-03 16 views
0

我最初将创建一个经典的“更新,而你键入”基于Javascript的养老金计算器,但不希望用户能够通过下载.js来查看业务逻辑文件。但是,在.js文件中似乎没有保护业务逻辑的可靠方法。在同一地点更新的PHP计算器

因此,我现在要把计算逻辑放在服务器上的PHP中。关于创建表单提交到另一个列出输出的页面,有很多材料。但是,我的计算器是主页上的侧边栏,我希望用户单击“计算”,并将结果显示在同一个框中,而不会被带到单独的页面。

这是可行的,如果是的话,你会建议作为解决方案的体系结构? (例如将计算逻辑保存在.php中,并仍然使用xyz等通过Javascript调用它)。寻找指导和设计建议。目标是一个逻辑相当复杂但没有数据库查找的计算器,最重要的是用户不能移动到单独的页面。

非常感谢。 2012年8月3日

编辑(2012年12月17日):所以四个月后,我终于破解了!看看www.pencalc.org,它演示了我正在尝试构建的东西。使用Javascript异步调用基于PHP的计算。谢谢你们的帮助。

+4

你说你不想使用AJAX,但你描述的是...... AJAX。 – sachleen 2012-08-03 16:18:48

+6

用AJAX发送完整的表单,让PHP脚本返回结果。注入为HTML元素。完成。 – knittl 2012-08-03 16:19:16

+0

@sachlee:是的,理想的是AJAX,但是因为我无法保护.js文件不被泄露,所以我不介意用户是否必须单击按钮,然后等待结果。通过AJAX,我的意思是说,“输入输入时的结果更新”动态。 – 2012-08-03 16:22:20

回答

0

knittl和sachleen在向正确的方向推动你,但我觉得需要更完整的答案。

如果您不想将业务逻辑暴露给最终用户,那么您可以使用js/AJAX自动将表单提交给PHP脚本。然后脚本为计算器计算一些值,然后仅打印该值(例如$ 20.45)。您的JS最终会看到来自PHP脚本的响应。从服务器获得价值后,将该值转储到计算器的相关字段中。现在,所有用户都可以看到一堆JS将用户数据传递给PHP脚本。

但是,我会看看JQuery,这有助于自动化AJAX的许多工作以及任何涉及操纵DOM的工作。

+0

哦,太棒了!我没有意识到Javascript和PHP实时交互是可能的。 – 2012-08-03 16:42:12

+0

如果你的问题已经解决,你应该接受任何答案是正确的。对于其他可能有类似问题并且偶然发现您的帖子的人,这将有助于他们确定正确的解决方案。 – kurtzbot 2012-08-03 20:33:17

0

你可以在你的JavaScript没有业务逻辑做到这一点:

  1. 保存每个用户行为的内容与jQuery .data或 类似
  2. 通过AJAX当用户发送数据到PHP脚本点击计算
  3. PHP处理请求并输出结果。
  4. javascript将结果放回到DOM中。
0

您的业务逻辑将在您的PHP页面中。它将从$_POST阵列获得输入并处理数据,并回显输出。

看看jQuery的.post()关于如何发出POST请求。您使用输入发出请求,并从PHP获得输出。然后你可以使用.text().val()或类似的东西显示数据。