有思俱乐部学习园地

U.A.Request向PHP发送请求

上一节课我们讲了使用PHP链接mysql数据库,从上一节课的内容中,我们发现上一节的代码是不能通过的,只能解决单个对数据库的操作。这节课我们封装上节课的PHP代码,并且使用UFORM框架的ajax函数U.A.Request函数向PHP发送请求并且执行相对应的数据库存储过程,从而达到可复用的代码。                                             
接下来,我们在集成环境的目录中的WWW文件夹下新建一个request.php文件,新建完成后使用编辑器打开。在编辑器下敲入以下代码:
代码:
<?php
//判断是否有POST一个mode参数过来
if (isset($_REQUEST['mode'])) {
    $ary =  explode(",",$_REQUEST['mode']);//获取前台传过来的参数,以逗号的形式分割成数组
    //建立连接
    $m=mysqli_connect('*****','*****','*****',"UseStudio_PhpClass",'14062');    
    //判断如果数据库连接不成功
    if ($m->connect_error) {
        //返回错误,结束运行,退出脚本。
        echo json_encode(Array("Error" => $m->connect_errno . " - " . $m->connect_error));
        return;
    }
    //设置字符集
    $m->set_charset('utf8');
    //定义存储过程名
    $sqlname = urldecode(urldecode($ary[0]));
   //只有两个参数的时候,就是参数中,只有数据库名和存储过程名
    if(count($ary)==1){
    //调用存储过程
      $sql = 'CALL '.$sqlname.'();';
    }
   //echo urldecode(urldecode($ary[1]));
    else{
    //如果多参数,进行拼接。
      $sql = 'CALL '. $sqlname.'(';
        for($i=1;$iset_charset('utf8');
    //执行存储过程语句
    $res = $m->query($sql);
    //判断返回值的类型是否是布尔型,如果是布尔型,返回字符串"true";
    if(gettype($res)=="boolean"){
        echo "true";
    }
    //如果是object类型,则是代表有返回值,对方返回值进行处理。
    else if(gettype($res)=="object"){
        //存储过程如果执行成功了,把结果集获取了,以JSON的格式打印出来!以便前台调用
        $all_rows = array();  //定义一个数组,用于存放结果集
        //while循环结果集
        while($row =$res->fetch_array(MYSQLI_ASSOC)){       
            //把结果集放入到数据中
            array_push($all_rows, $row); 
        }
        //把结果集以json的格式输出,以便前台调用!
        echo json_encode($all_rows);
    }
    //关闭数据库连接
    mysqli_close($m);   
} 
else {
    echo json_encode(Array("Error" => "mode not exist"));
}
?>


结果:
接下来,我们在集成环境的目录中的WWW文件夹下新建一个request.html文件,新建完成后使用编辑器打开。在编辑器下敲入以下代码
代码:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script src="http://www.1473.cn/uform.js"></script>
</head>
<body>
</body>
</html>
<script>
    window.onload = function () {
        U.A.Request("http://127.0.0.1:8081/Phpclass/request.php", ["cxs_SelectAllUser"], function (r) {
            console.log(r.value);
        });
    }
</script>
接着,我们在浏览器输入地址,打开我们的刚刚新建的request.html页面,打开F12控制台。在控制台上可以看到有一串json数据的。这样我们就完成了对PHP链接数据库的封装。

工作人员

 
                        
作者:蔡旭升
信息录入:蔡旭升
视频录制:方嘉威
视频编辑:方嘉威