我必须从我的模型或控制器调用一个javascript函数。我可以从视图文件中调用它,但是如何直接从模型调用JS函数。
有没有办法做到这一点?
PHP 是一种服务器端语言。这意味着PHP文件将在HTTP服务器上进行处理,然后将生成的HTML页面交付给客户端。
Javascript(JS)在客户端(浏览器)上解释,并与HTML和其他远程资源接口。
由于这个模型,PHP和JS彼此一无所知。因此,直接从PHP文件调用JS是不可能的。
如果您希望使客户端浏览器调用JS函数,并且PHP脚本定义了JS函数的值,则可以使用echo()和一些字符串连接
//this is an example and will not run.
echo "<script>myJsFunction('" . $arg1 . "','" . $arg2 . "')</script>";
这会将 JS 函数调用嵌入到返回到客户端的 HTML 页面中。一旦客户端呈现 HTML 页面,它将在遇到它时执行函数调用。
如果你能举个例子来说明你想做什么,我也许能给你一个更准确的答案。
有关客户端服务器体系结构的更深入说明以及执行位置,请查看 Web 浏览器客户端服务器体系结构
不,尝试理解 MVC 模式,这个想法是模型不知道视图,也不必知道。此外,您不能使用 php 调用 JS,php 是一种服务器端语言,对客户端脚本一无所知。
你想要的是实现长轮询。我建议您在尝试实现某些内容之前学习和阅读所涉及的基本技术。
- http://en.wikipedia.org/wiki/Push_technology
- http://en.wikipedia.org/wiki/Comet_%28programming%29