• Thinkphp下实现ajax异步返回


    ajax可以向控制器post方式传递数据,并返回。

    JS端代码

    $('#send-btn').click(function(){
            
            $username=$('input[name="username"]');
            $content=$('textarea[id="content"]')
            if(!$username.val()){
                alert('账号不能为空!');
                $username.focus();
            }else{
                if(!$content.val()){
                    alert('内容不能为空!');
                    $content.focus();
                }
            }
            
            $.post(url,{username:$username.val(),content:$content.val()},function(data){
                if(data.status){
                    
                    alert('发布成功');
                    $('#close').click();
                    
                }else{
                    alert('发布失败');
                }
            },'json');
            
        })

    返回后执行function方法 $.post第一个参数的地址,第二个参数是要传递的参数,第三个是返回执行的方法,第四个是返回类型

    控制器端代码

           $content= $_POST['content'];
           $data=array(
               'username'=>I('username'),
               'content'=>I('content'),
               'time'=>time(),
           );
           
           if(M('wish')->data($data)->add()){
               $data['content']=phiz_replace($data['content']);
               $data['time']=date('Y-m-d H:i:s',$data['time']);
               $data['status']=1;
               $this->ajaxReturn($data,'json');
           }else{
               $this->ajaxReturn(array('status'=>0),'json');

    ajaxReturn第一个参数要传递的信息,可以是数组,第二个是类型,可以通过配置Thinkphp设置不同的类型

    /**
     * 表情替换
     */
     function phiz_replace($content){
         
         preg_match_all('/[.*?]/is',$content,$arr);
          if($arr[0]){
             $phiz=F('phiz','','./Public/');
             foreach ($arr[0] as $value)
                 foreach ($phiz as $k=>$v){
                 if($value==$v){
                     $content=str_replace($v,'<img src="/blog/App/Home/View/Public/Images/phiz/'.$k.'.gif"/>',$content);
                 }
             }
         } 
         return $content;
     }

             preg_match_all正则匹配,在第二个参数中找和第一个参数类似的内容,存放在第三个参数中,按数组形式存放,第四个参数如果是PREG_PATTERN_ORDER,则$arr[0]保所

    以匹配到的结果,$arr[1]保持匹配到的第一个字组,$arr[2]保持第二个,以此类推,如果第四个参数是PREG_SET_ORDER,则$arr[0]保持第一个,$arr[1]保持第二个,以此类推。

             F方法是Thinkphp的缓冲方法,第一个参数是文件名,第二个参数为空则是读取数据,不为空则是要存入的内容,'./Public'为根目录下的Public文件,也就是工程名下的内容,

            str_replace:把第三个参数中的所以和第一个参数相同的内容换成第二个

  • 相关阅读:
    计算SQL语句运行速度
    SQL 分页 语句
    RDLC 显示 错误号 的解决办法
    ASP.NET 编写控件的一些常用属性
    自己写的JS数组插入方法
    javascript textarea MaxLength 属性的实现
    table 样式
    AviCap
    C# 遍历枚举
    JS 获取网页内容高度 和 网页可视高度 支持IE 6789 Firefox Chrome
  • 原文地址:https://www.cnblogs.com/hhfhmf/p/4714413.html
Copyright © 2020-2023  润新知