julia 发表于 2010-12-4 09:30:11

如何在controllers 调用JS函数?

-------------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

Hex 发表于 2010-12-4 09:56:02

这种问法就不正确,控制器是服务器端,JS 是客户端,怎么可能能互相调用呢?
就不应该在控制器里写 echo,都放到 view 里肯定管用,建议看一些 CI 例子,比如 STBlog。

julia 发表于 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>" ; //没显示???

Hex 发表于 2010-12-5 13:34:12

控制器执行是有顺序的,先显示 echo,后显示视图里的内容。
所以第一个正确,第二个错误。
所以建议你不要用 echo,用了出错很正常。

julia 发表于 2010-12-5 16:52:23

这种问法就不正确,控制器是服务器端,JS 是客户端,怎么可能能互相调用呢?
就不应该在控制器里写 echo, ...
Hex 发表于 2010-12-4 09:56 http://codeigniter.org.cn/forums/images/common/back.gif

-------------controllers
echo "<script LANGUAGE='javascript'>alert(' ".' input error please redo '."');history.go(-1);</script>" ; //执行正确,这里调用了JS

Hex 发表于 2010-12-5 19:28:33

回复 5# julia


    那你想问什么呢?我只是建议不要用 echo,这样会影响客户端性能的。
页: [1]
查看完整版本: 如何在controllers 调用JS函数?