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

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

[复制链接]
发表于 2019-3-18 14:48:01 | 显示全部楼层 |阅读模式
  1.                         echo "<script>alert('".$msg."');</script>";
复制代码


功能很简单,就是想弹出一个窗口
  1. echo "<script>alert('直接写信息就可以了');</script>";
  2. echo $msg;也可以
  3. 为什么一拼接就出错呢
复制代码
发表于 2019-3-18 19:26:26 | 显示全部楼层
控制器不是这样用的,你这样写前台必须用ajax方式获取

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

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

 楼主| 发表于 2019-3-19 09:29:08 | 显示全部楼层
本帖最后由 qq36910093 于 2019-3-19 09:53 编辑
PHP复制代码
                        $data['message']="<script>alert('".$msg."');</script>";
                        $data['heading'] ="登陆失败";
                        $data['msg']=$msg;
                        $this->load->view('errors/html/error_general.php',$data);
复制代码


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

1.png
2.png
 楼主| 发表于 2019-3-19 10:17:27 | 显示全部楼层
PHP复制代码
                        $msg= validation_errors();
                        print_r($msg);
                        echo $msg;
                        $msg="密码长度必须5-15个字符";
                        echo "<script>alert('".$msg."');</script>";
复制代码

这个问题有些奇怪了,我直接把字符串复制到$msg输出就正常,采用从函数接收的就不正常
但是直接输出那个又可以,我都晕了
 楼主| 发表于 2019-3-20 11:33:31 | 显示全部楼层
找到为什么了,会自动在validation_errors()返回的信息里面加一个p标签和换行符,把这个换行删除就行了
PHP复制代码
                        # 未通过
                        $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>";
复制代码

本版积分规则