当前位置: 首页 > 工具软件 > php-ajax > 使用案例 >

ajax请求,php后端

齐英韶
2023-12-01

当在浏览器上输入完地址后到看到页面这中间网络上都发生了些什么?

https://blog.csdn.net/chj285401200/article/details/79668950

前端简单了解:

1. DNS解析(将域名转换为IP地址的过程)
2. 向服务器发送一次HTTP请求(要一个东西)
3. 服务器会在它的磁盘上找个一个对应的文件给到客户端(一般来说是.html,.jpg.png.css.js等等)
4. 浏览器将根据已接收的文件将代码或图片解析成可见的页面。

http协议

1.无状态(第一次请求和下一次请求之间是没有任何关联的)。

2.服务器不允许主动向客户端进行推送

3.常常用在web数据传输

phpnow开发集成套件

  • PHP
  • Apache(webService类软件)
  • MYSQL

ajax:http脚本化–使用js代码来控制http请求。基于真实网络环境。参数不带引号

ajax请求步骤:

  1. 实例化一个XMLHttpRequest对象
  • let http=new XMLHttpRequest();
  1. 规划一个请求open(method,url,async)false代表同步,true代表异步,默认;
  • http.open(“get”,“http://127.0.0.1”,true);
  1. 使用send()发送请求
  • http.send();
  1. 接受服务器端返回的内容,http.responseText后端返回数据
  • http.onreadystatechange=function(){

    ​ //客户端一定已经接收到了来自服务器端的响应了。

    ​ //readyState 状态码:

    0:请求未初始化
    1:服务器已建立连接
    2:请求已接收
    3:请求处理中
    4:请求已完成,且响应已就绪

    ​ if(http.readyState===4){

    ​ //数据处理

    }

    }

状态码:200,304成功,400开头客户端失败,500开头服务器端失败。

HTTP状态码和ReadyState状态码

https://blog.csdn.net/qq_39125445/article/details/82754400

mysql:

数据库结构:

* 库 - Excel文件
* 表 - 文件内的表
* 列 - 表头
* 行 - 一条数据

数据库中表的设计原则:任何表都应该有一个id字段,并且该字段的值是唯一的,并且该字段应是该表中的主键。

SQL语句:

<!-- 查询 -->

	SELECT * FROM 表名
	SELECT * FROM 表名 WHERE 字段名="某值"
	SELECT * FROM 表名 WHERE 字段名="某值" AND 字段名="某值"
	SELECT * FROM 表名 WHERE 字段名="某值" OR 字段名="某值"
	SELECT * FROM 表名 ORDER BY 字段名 根据某个的字段的值进行排序

	<!-- 删 -->

	DELETE FROM 表名 WHERE 字段名="某值";
	DELETE FROM 表名

	<!-- 增 -->

	INSERT INTO 表名 (字段名,字段名,字段名...) VALUES ("值1","值2","值3"...)

	<!-- 改 -->

	UPDATE 表名 SET 字段名="新值" WHERE 字段名="某值"
	UPDATE 表名 SET 字段名="新值",字段名="新值" WHERE 字段名="某值"

JSON:是一种轻量级的数据交换格式,多用在前后端交互数据。

  • JSON字符串:往往都是在后端向前端发送数据时传输的格式。(后端一般发送的)
    • let json=[{"name":"wdw","age":18}]
  • JSON对象:往往都是前端希望得到的,数组或对象它们之间的嵌套。(前端期望接收的)
    • let Json=[{“name”:“wdw”,“age”:18}]

JSON字符串与JSON对象之间的转换

  • JSON.parse(JSON格式的字符串):正解析,将JSON字符串转换为JSON对象,没有副作用。
  • JSON.stringify(JSON对象):反解析,将JSON对象转换为JSON字符串

php:是一种创建动态交互性站点的强有力的服务器端脚本语言

<?php

header("Content-Type:text/html;charset=utf-8");//解决返回值字符编码问题
//php用$声明变量,使用的时候也要带上$
// 连接mysql
$con=mysql_connect("localhost","root","123456");
//连库失败之后报错误信息
if(!$con){
    //返回给前台错误信息
    die("Could not connect:". mysql_error());
}else{
    //连接数据库
    mysql_select_db("student",$con);
    //解决字符编码问题
    mysql_query("set character set 'utf8'");//读库 
    mysql_query("set names 'utf8'");//写库
    //接受前端发过来的参数
    $name=$_GET["name"];
    //查询数据库
    //此时查询过来的$result是php世界里的关联数据。
    $result=mysql_query('SELECT * FROM students WHERE name="'.$name.'"');
    //使用字符串拼接将$result变成前端所认识的数组或者是对象(JSON字符串或者JSON对象)
    //mysql_fetch_array(data,array_type)函数从结果集中取得一行作为关联数组,或数字数组,或二者兼有,返回根据从结果集取得的行生成的数组,如果没有更多行则返回 false。
    //data可选。规定要使用的数据指针。该数据指针是 mysql_query() 函数产生的结果。
    //可选。规定返回哪种结果。可能的值:MYSQL_ASSOC - 关联数组,MYSQL_NUM - 数字数组,MYSQL_BOTH - 默认。同时产生关联和数字数组
    $response="[";
    while($row=mysql_fetch_array($result)){
        $response=$response.'{'.'"id":'.$row["id"].','.'"name":"'.$row["name"].'"'.','.'"sex":'.$row["sex"].','.'"age":'.$row["age"].','.'"birth":"'.$row["birth"].'"},';  
    }
    //截取字符串,处理成前端需要的json字符串
    $response=substr($response,0,strlen($response)-1).']';
    if(strlen($response)==1){
        echo "[]";
    }else{
        echo $response;
    }
    
}


?>
 类似资料: