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 '要显示的信息';  

  }

原文地址:https://www.cnblogs.com/lin3615/p/3171482.html