用户
 找回密码
 入住 CI 中国社区
搜索
查看: 2904|回复: 5
收起左侧

[已解决] 如何在controllers 调用JS函数?

[复制链接]
发表于 2010-12-4 09:30:11 | 显示全部楼层 |阅读模式
-------------controllers

if ($this->form_validation->run() == FALSE) {
  echo 'call msg_box'; //正常显示
  echo "<script LANGUAGE='javascript'>function msg_box('my box ', 'test my text', 0, 'url');</script>" ; //没显示???
}


-------------views
<script language="JavaScript">
function msg_box(title, text, times, url)
{
        alert(title);
        ...
}
</script>
forms
submite
发表于 2010-12-4 09:56:02 | 显示全部楼层
这种问法就不正确,控制器是服务器端,JS 是客户端,怎么可能能互相调用呢?
就不应该在控制器里写 echo,都放到 view 里肯定管用,建议看一些 CI 例子,比如 STBlog。
 楼主| 发表于 2010-12-5 08:18:08 | 显示全部楼层
-------------controllers
echo "<script LANGUAGE='javascript'>alert(' ".' input error please redo '."');history.go(-1);</script>" ; //执行正确

echo "<script LANGUAGE='javascript'>function msg_box('my box ', 'test my text', 0, 'url');</script>" ; //没显示???
发表于 2010-12-5 13:34:12 | 显示全部楼层
控制器执行是有顺序的,先显示 echo,后显示视图里的内容。
所以第一个正确,第二个错误。
所以建议你不要用 echo,用了出错很正常。
 楼主| 发表于 2010-12-5 16:52:23 | 显示全部楼层
这种问法就不正确,控制器是服务器端,JS 是客户端,怎么可能能互相调用呢?
就不应该在控制器里写 echo, ...
Hex 发表于 2010-12-4 09:56


-------------controllers
echo "<script LANGUAGE='javascript'>alert(' ".' input error please redo '."');history.go(-1);</script>" ; //执行正确,这里调用了JS
发表于 2010-12-5 19:28:33 | 显示全部楼层
回复 5# julia


    那你想问什么呢?我只是建议不要用 echo,这样会影响客户端性能的。

本版积分规则