【问题标题】:A PHP calculator which updates in the same place [closed]一个在同一个地方更新的 PHP 计算器 [关闭]
【发布时间】:2012-08-03 16:17:07
【问题描述】:

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

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

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

非常感谢。 2012 年 8 月 3 日

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

【问题讨论】:

  • 你说你不想使用 AJAX 但你描述的是...... AJAX。
  • 使用 AJAX 发送完整的表单,让您的 PHP 脚本返回结果。作为 HTML 元素注入。完成。
  • @sachlee:是的,理想的是 AJAX,但因为我无法保护 .js 文件不被泄露,所以我不介意用户是否必须单击按钮并等待一秒钟结果。通过 AJAX,我的意思是“输入输入时结果更新”的动态性。
  • 克服它。你养老金罐计算器的业务逻辑不是火箭科学。大多数潜在的模仿者会在尝试撕掉你的 js 代码之前从头开始编写自己的代码。
  • @knittle:我不完全理解这个建议。如何在 javascript 函数中调用 php 代码,您是否有一个实现“HTML 元素注入”的虚拟示例?

标签: php javascript calculator


【解决方案1】:

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

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

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

【讨论】:

  • 太棒了!我没有意识到 Javascript 和 PHP 实时交互是可能的。
  • 如果您的问题已经解决,您应该接受任何正确的答案。对于可能遇到类似问题并偶然发现您的帖子的其他人,这将帮助他们确定正确的解决方案。
【解决方案2】:

您可以在 JavaScript 中不使用业务逻辑来执行此操作:

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

【讨论】:

    【解决方案3】:

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

    查看 jQuery 的 .post() 以了解如何发出 POST 请求。您使用输入发出请求,然后从 PHP 获得输出。然后您可以使用.text().val() 或类似的方式显示数据。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多