qq36910093 发表于 2019-3-18 14:48:01

我在控制器中输出一段js为什么不起作用啊

                        echo "<script>alert('".$msg."');</script>";

功能很简单,就是想弹出一个窗口
echo "<script>alert('直接写信息就可以了');</script>";
echo $msg;也可以
为什么一拼接就出错呢

superxgz 发表于 2019-3-18 19:26:26

控制器不是这样用的,你这样写前台必须用ajax方式获取

应该为控制器写入变量,前台取出
例子:
控制器:$data['jsss'] = "<script>alert('直接写信息就可以了');</script>"
$this->load->view("index", $data);

view里面:
<?php echo $jsss;?>

qq36910093 发表于 2019-3-19 09:29:08

本帖最后由 qq36910093 于 2019-3-19 09:53 编辑

                        $data['message']="<script>alert('".$msg."');</script>";
                        $data['heading'] ="登陆失败";
                        $data['msg']=$msg;
                        $this->load->view('errors/html/error_general.php',$data);

这个还是获取不到另外我想问一下,如何查看我生成的这个字符串的内容啊
我已查看源代码就出错
如下图



qq36910093 发表于 2019-3-19 10:17:27

                        $msg= validation_errors();
                        print_r($msg);
                        echo $msg;
                        $msg="密码长度必须5-15个字符";
                        echo "<script>alert('".$msg."');</script>";
这个问题有些奇怪了,我直接把字符串复制到$msg输出就正常,采用从函数接收的就不正常
但是直接输出那个又可以,我都晕了

qq36910093 发表于 2019-3-20 11:33:31

找到为什么了,会自动在validation_errors()返回的信息里面加一个p标签和换行符,把这个换行删除就行了
                        # 未通过
                        $msg= validation_errors(" ","!");//如果不带参数会自动加P标签
                        $msg= str_replace(array("\r", "\n", "\r\n"), '', $msg);//回车导致js无法输出

                        echo "<script language='JavaScript'>";
                        echo " alert('".$msg."');";
                        echo " history.back();";
                        echo "</script>";
页: [1]
查看完整版本: 我在控制器中输出一段js为什么不起作用啊