Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在同一位置更新的PHP计算器_Php_Javascript_Calculator - Fatal编程技术网

在同一位置更新的PHP计算器

在同一位置更新的PHP计算器,php,javascript,calculator,Php,Javascript,Calculator,我最初打算创建一个基于Javascript的经典“键入时更新”pension pot计算器,但不希望用户能够通过下载.js文件来查看业务逻辑。但是,似乎没有一种可靠的方法来保护.js文件中的业务逻辑 因此,我现在将把计算逻辑放在PHP服务器上。关于创建一个表单并提交到另一个列出输出的页面,有大量的材料。但是,我的计算器是主页上的一个侧栏,我希望用户单击“计算”,结果将显示在同一个框中,而无需转到单独的页面 这是否可行?如果可行,您会建议解决方案的体系结构是什么?(例如,将计算逻辑保留在.php中

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

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

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

非常感谢。 2012年8月3日


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

奈特尔和萨克伦把你们推向了正确的方向,但我觉得需要一个更完整的答案

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


不过,我想看一看,这有助于自动化AJAX的大量工作以及任何涉及操作DOM的工作。

您可以在JavaScript中不使用任何业务逻辑来实现这一点:

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

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


    看看jQuery关于如何发出POST请求的介绍。您使用输入发出请求,然后从PHP获得输出。然后,您可以使用或或类似的方式显示数据。

    您说不想使用AJAX,但您描述的是。。。用AJAX发送完整的表单,让PHP脚本返回结果。作为HTML元素注入。完成。@sachle:是的,理想的做法是AJAX,但因为我无法保护.js文件不被泄露,所以我不介意用户是否必须单击按钮并等待一秒钟结果。我所说的AJAX是指“输入时结果更新”的动态性。你知道,商业逻辑不是火箭科学。大多数潜在的模仿者在试图剽窃你的js代码之前,会先编写自己的代码。@knittle:我不完全理解这个建议。如何在javascript函数中调用php代码,是否有实现“HTML元素注入”的虚拟示例?太棒了!我没有意识到Javascript和PHP的实时交互是可能的。如果你的问题已经解决,你应该接受任何正确的答案。对于其他可能有类似问题并偶然发现您的帖子的人,它将帮助他们找到正确的解决方案。