0

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

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

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

非常感谢。2012 年 8 月 3 日

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

4

3 回答 3

0

knittl 和 sachleen 将您推向了正确的方向,但我觉得需要一个更完整的答案。

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

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

于 2012-08-03T16:26:26.303 回答
0

您可以在 JavaScript 中没有业务逻辑的情况下执行此操作:

  1. 使用jQuery .data或类似的东西保存每个用户操作的内容
  2. 当用户单击计算时,通过 AJAX 将此数据发送到 PHP 脚本
  3. PHP 处理请求并输出结果。
  4. javascript 将结果放回 DOM。
于 2012-08-03T16:29:08.797 回答
0

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

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

于 2012-08-03T16:32:15.643 回答