ajax请求和php接口

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 20:39   2167   0

本人拍黄片(PHP),我大php是世界上最好的语言,由于工作原因,学了点ajax,在这里分享给大家,当然必须也要有php提供接口数据的呀!

#html代码
<!DOCTYPE html>
<html>
<head>
 <title>测试ajax请求</title>
</head>
<body>
  <br/><br/><br/><br/>
  <center>
  phone: <input type="text" name="phone" class="phone"><br/>
  name:  <input type="text" name="name" class="name"><br/>
    <button class="btn">点击测试</button>
  </center>
</body>
<script type="text/javascript" src="jquery.js"></script>
</html>
#js代码:
    $(function(){
        $('.btn').click(function(){
            var phone=$('.phone').val();
            var name =$('.name').val();
            $.ajax({
                type:'POST',
                url: '{:U('Login/check')}',
               dateType:'JSON',
                data:{
 //也可以写成拼接字符串模式
                    'phone':phone,   
                    'name':name,
                },
/******
        第二种data数据形式
        data:'phone='+$(".phone").val()+"&name="+$(".name").val(),
**/
                success: function(data){
        //这里的data跟state是php提供接口时返回的信息
                    if(data.state=="y"){
                        alert(data.msg);
                        window.location.href="url"; //这里是异步请求成功的跳转地址。
                    }else{
                        alert(data.msg);
                        return false;
                    }
                }
            });
        });
            
    });
//第三种ajax请求:
 var url = "/index.php?c=login&a=check1";
  var data = {'username':username,'password':password};

  $.post(url,data,function(result){
   if(result.status==0){
     return dialog.error(result.message);
   }
  },'JSON');
 },
#test.php 这里我用的是thinkphp3.2版本的,有些封装好的函数我就拿来直接用了
<?php
namespace Admin\Controller;
use Think\Controller;
class LoginController extends Controller {
    public function check(){
        $username = $_POST['username'];
        $password = $_POST['password'];
     if(!trim($username)){
//这里的data是数组,和ajax信息一模一样,参数值怎么返回,这里怎么写
      $data['state']=0;
      $data['msg']='空';
      echo json_encode($data);die();
        
     }
     
    }
}
    

或者用另一种标准的方式写接口也行:

public function check1(){
    //这里是login下的check1另一个接口方式,更改ajax的url参数就可以用了。
    $username= $_POST['username'];
    if(!trim($username)){
       $result=array('data'=>array(),'message'=>'密码不能为空','status'=>0); 
        exit(json_encode($result));
    }
}

或者我们可以封装一个公共类接口返回信息,然后在业务逻辑下直接调用这个方法

//这里我用的是TP3.2做的例子,其实框架只是工具,不要在意这些,任何框架都可以这样写
//我在application/Common/Common下的function.php写的
function  show($status,$message,$data=array()){
    $result=array(
                'status'=>$status,
  'message'=>$message,
  'data'  => $data);
    exit(json_encode($result));
}

//然后再业务中这样调用
 public function check(){
     $username = $_POST['username'];
     $password = $_POST['password'];
     if(!trim($username)){
//直接return show方法,然后信息直接写。
      return show(0,'用户名不能为空');  
     }
     if(!trim($password)){
      return show(0,'密码不能为空');
     }
    }

转载于:https://my.oschina.net/gracebear/blog/891296

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP