9

我正在使用 PHP 编写一个 Web 应用程序,并且遇到了几种情况,我需要在服务器和浏览器上使用类似的代码。例如:

  • 我想验证用户输入,并在双方生成相同的错误消息。
  • 我想使用某些规则来格式化数据(例如,如果给定的字段小于 1,则以两位小数显示,否则不显示),并且无论哪一方呈现它,都让它看起来相同。

看起来这应该是一个常见的问题,因为人们正在将更多的逻辑从服务器转移到浏览器。但是是否有任何通用的模式或库来处理它(特别是对于 PHP)?

4

7 回答 7

3

一种解决方案是使用服务器端 JavaScript。那时您将能够共享大量代码。

于 2010-01-26T20:26:03.173 回答
2

有趣的问题!据我所知,PHP 有 2 个选项:

  • 使用 Ajax 进行表单验证,所以一切都发生在服务器上。
  • 努力将 PHP 函数引入 JS,这至少应该简化移植: http: //phpjs.org/

然而,在 Java 中,您可以使用 Rhino 运行 Javascript。

我能想到的其他事情是使用 Flash 或 Java 小程序进行丑陋的 hack,或者涉及像 Pyjamas 这样的框架。

于 2010-01-26T20:30:38.880 回答
2

您可以尝试使用haxe语言。它可以翻译成 js/php 甚至 actionscript (flash)。

于 2010-01-27T11:26:18.283 回答
1

部分解决方案是 AJAX。例如,在服务器上编写一次验证代码,然后让表单与服务器对话以查看输入是否有效,如果无效则要求显示错误消息。

于 2010-01-26T20:26:42.337 回答
0

在客户端进行快速验证(如模式匹配、日期和数字正确性)和服务器端的安全检查。
您也可以使用 AJAX 进行服务器端验证,但这样您可以在用户输入和验证结果之间产生响应差距。因此,使用 JavaScript 进行快速和基本的验证,并使用 PHP 进行繁重的验证。

于 2010-01-26T20:46:05.873 回答
0

json_encode是一个很好的开始 - php 数组和json_decodejson 对象中可用的相同数据源(根据需要)。

json_encoded 数据可以通过<script>您认为合适的标签或 ajax 提供。

于 2010-01-26T20:26:50.260 回答
0

您可以使用http://phpjs.org/在客户端运行您的 php 代码。这适用于 php 中的大多数函数。

于 2010-01-27T06:10:28.393 回答