• think ajax 应用


    首先得引入 jquery 文件,另外定义一个处理的 js.js 文件

    如实现用 post 传输方法:

    模板文件:

    <script type="text/javascript">
     var handleUrl = '{:U("process", '', '')}'; //如果是分组的,要给完整的处理方法路径,如 '{:U(分组名/模块/操作名, '', '')}'

                        // U 函数后面的两个空参数除去不必要的内容,让其映射到特定的操作名
    </script>

    <form action="" method="post" name="wishform">
    <input type="text" name="username" id="user" /><br />
    <textarea cols="30" rows="3" name="content" id="content"></textarea>
    <br />
    <input type="submit" value="submit" name="submit" id="sub" />
    </form>

    js.js 内容如下:

    $(document).ready(function(){
     $('#sub').click(function(){

      var user = $('input[name=username]');
      var content = $('textarea[name=content]');
      if(user.val() == ''){
       alert("USER: 不能为空!");
       return false;
      }
      if(content.val() == ''){
       alert("Content: 不能为空!");
       return false;
      }

    // $.post(处理的函数名称,{格式选项属性},用于处理返回数据的函数, 数据格式)

      $.post(handleUrl,{username:user.val(),content:content.val()}, function(data){
       if(data.status){
        alert("发布成功!");
       }else{
        alert("发布失败!");
       }
      }, 'json');

      return false; // 防止冒泡发生。。。
     });
    });

    handleUrl 操作(在控制器中添加):

      public function handle(){

     // 判断是不是 ajax 提交
       if(!IS_AJAX) halt('非法提交');

     // 获取提交过来的数据
        $data = array(
         'username'=>I('username'),
         'content'=>I('content'),
         'time'=>time()
        );
      //添加到数据库以及作反应返回
       if(M('数据表名')->data($data)->add()){
        $data['status'] = 1;
        $this->ajaxReturn($data,'json');
       }else{
        $data['status'] = 0;
        $this->ajaxReturn(array('status'=>0),'json');
       }  

     }

    如实现用 get 传输方法:

    模板文件:

    <script type="text/javascript">
     var handleUrl = '{:U("process", '', '')}'; //如果是分组的,要给完整的处理方法路径,如 '{:U(分组名/模块/操作名, '', '')}'

                        // U 函数后面的两个空参数除去不必要的内容,让其映射到特定的操作名
    </script>

    </head>
    <body>
    <form action="" method="get" name="wishform">
    <input type="text" name="username" id="user" /><br />
    <textarea cols="30" rows="3" name="content" id="content"></textarea>
    <br />
    <input type="submit" value="submit" name="submit" id="sub" />
    </form>

    js.js 文件:

    $(document).ready(function(){
     $('#sub').click(function(){

      var user = $('input[name=username]');
      var content = $('textarea[name=content]');
      if(user.val() == ''){
       alert("USER: 不能为空!");
       return false;
      }
      if(content.val() == ''){
       alert("Content: 不能为空!");
       return false;
      }

      htmlobj = $.ajax({url:handleUrl+'?username='+user.val()+'&content='+content.val(), async:false});
      alert(htmlobj.responseText);
      return false;
     });
    });

    handleUrl 操作(在控制器中添加):

      public function handle(){

     // 判断是不是 ajax 提交
       if(!IS_AJAX) halt('非法操作');

    // 获取提交过来的数据
         $username=I('username'),
         $content=I('content'),
    // 作为 responseText() 返回

     echo '要显示的信息';  

      }

  • 相关阅读:
    redhat 6.7 telnet rpm 安装包
    linux下网络配置 命令
    修复南尼U盘
    mac获取root权限
    ubuntu二进制包安装openresty
    ubuntu18源码包安装openresty
    Python监控rabbitmq的代码
    win10不能将文件拖到另外一个程序中去的解决办法
    docker配置远程管理端口
    nginx的代理配置
  • 原文地址:https://www.cnblogs.com/lin3615/p/3171482.html
Copyright © 2020-2023  润新知