Ajax+PHP简单数据交互
程序员文章站
2022-09-05 18:51:56
php是一种创建动态交互性站点的服务器端脚本语言,优势:php脚本语言应用广泛,开源免费,最重要的是入门简单,容易掌握。
php能够生成动态页面内容
php能够创建、打...
php是一种创建动态交互性站点的服务器端脚本语言,优势:php脚本语言应用广泛,开源免费,最重要的是入门简单,容易掌握。
php能够生成动态页面内容
php能够创建、打开、读取、写入、删除以及关闭服务器上的文件
php能够接收表单数据
php能够发送并取回cookies
php能够添加、删除、修改数据库中的数据
php能够限制用户访问网站中的某些页面
能够运行于各种平台,几乎兼容所有web服务器,支持多种数据库
1.我们想要运行php,首先要有个web服务器,一般可以在本地部署一个服务器用来测试。所以需要下载个xampp,我们在百度搜索apache friends,直接打开第一个链接,然后毫不犹豫的下载最新版本(php7.0.9),下载后执行安装。
2.
2.现在来配置xampp来部署一个本地服务器,打开只需要启用apache服务,下面我就启动成功了。如果启用不成功,port(s)没有数据显示,就证明你监听的pc端口被占用,你可以在config的里第一个选项进行监听端口的更改,找到记事本里的listen 8080命令改后缀,这里我把监听端口改成空闲的8080了。
3.下面来打开dreamweaver建一个服务器站点。站点配置:本地站点文件夹一定要选择你装xampp路径的htdocs的目录里。
4.添加服务器配置:
这样站点就设置好了,然后在站点文件夹创建server.php,脚本如下
<?php //设置页面内容是html编码格式是utf-8 //header("content-type: text/plain;charset=utf-8"); header('access-control-allow-origin:*'); header('access-control-allow-methods:post,get'); header('access-control-allow-credentials:true'); header("content-type: application/json;charset=utf-8"); //header("content-type: text/xml;charset=utf-8"); //header("content-type: text/html;charset=utf-8"); //header("content-type: application/javascript;charset=utf-8"); //定义一个多维数组,包含员工的信息,每条员工信息为一个数组 $staff = array ( array("name" => "乔布斯", "number" => "101", "sex" => "男", "job" => "ios开发工程师"), array("name" => "比尔盖茨", "number" => "102", "sex" => "男", "job" => "微软开发工程师"), array("name" => "陈美丽", "number" => "103", "sex" => "女", "job" => "安卓开发工程师"), array("name" => "黄力", "number" => "104", "sex" => "男", "job" => "java开发工程师"), array("name" => "车神", "number" => "105", "sex" => "男", "job" => "游戏开发工程师"), array("name" => "测试猫", "number" => "106", "sex" => "男", "job" => "web前端开发工程师") ); //判断如果是get请求,则进行搜索;如果是post请求,则进行新建 //$_server是一个超全局变量,在一个脚本的全部作用域中都可用,不用使用global关键字 //$_server["request_method"]返回访问页面使用的请求方法 if ($_server["request_method"] == "get") { search(); } elseif ($_server["request_method"] == "post"){ create(); } //通过员工编号搜索员工 function search(){ //检查是否有员工编号的参数 //isset检测变量是否设置;empty判断值为否为空 //超全局变量 $_get 和 $_post 用于收集表单数据 if (!isset($_get["number"]) || empty($_get["number"])) { echo '{"success":false,"msg":"参数错误"}'; return; } //函数之外声明的变量拥有 global 作用域,只能在函数以外进行访问。 //global 关键词用于访问函数内的全局变量 global $staff; //获取number参数 $number = $_get["number"]; $result = '{"success":false,"msg":"没有找到员工。"}'; //遍历$staff多维数组,查找key值为number的员工是否存在,如果存在,则修改返回结果 foreach ($staff as $value) { if ($value["number"] == $number) { $result = '{"success":true,"msg":"找到员工:员工编号:' . $value["number"] . ',员工姓名:' . $value["name"] . ',员工性别:' . $value["sex"] . ',员工职位:' . $value["job"] . '"}'; break; } } echo $result; } //创建员工 function create(){ //判断信息是否填写完全 if (!isset($_post["name"]) || empty($_post["name"]) || !isset($_post["number"]) || empty($_post["number"]) || !isset($_post["sex"]) || empty($_post["sex"]) || !isset($_post["job"]) || empty($_post["job"])) { echo '{"success":false,"msg":"参数错误,员工信息填写不全"}'; return; } //todo: 获取post表单数据并保存到数据库 //提示保存成功 echo '{"success":true,"msg":"员工:' . $_post["name"] . ' 信息保存成功!"}'; } ?>
我们可以在server.php文件数组$staff里的数据进行查询,并且可以实现添加数据的功能,下面来创建demo.html
<style> body,input,button,select,h1{ font-size:20px; line-height:18px; } </style> <script> window.onload=function(){ document.getelementbyid("search").onclick=function(){//查询数据 //发送ajax查询请求并处理 var request=new xmlhttprequest(); //open("方法(get查询,post添加)","打开的文件数据",处理方式(同步为false异步为true,不填默认为true)); request.open("get","server.php?number="+document.getelementbyid('keyword').value); request.send(); request.onreadystatechange=function(){ if(request.readystate===4){//当服务器请求完成 if(request.status===200){//status==200为服务器请求成功 var data=json.parse(request.responsetext); if(data.success){//数据填写符合要求 document.getelementbyid('searchresult').innerhtml=data.msg; }else{//数据填写不符号要求 document.getelementbyid('searchresult').innerhtml="出现错误:"+data.msg; } }else{//服务器请求失败 alert("发生错误:"+request.status); } } } } document.getelementbyid("save").onclick=function(){//添加数据 //发送ajax添加数据请求并处理 var request=new xmlhttprequest(); //open("方法(get查询,post添加)","打开的文件数据",处理方式(同步为false异步为true,不填默认为true));; request.open("post","server.php"); //定义data取得用户所填写的数据,并且send(data)到服务器 var data="name="+document.getelementbyid("staffname").value +"&number="+document.getelementbyid("staffnumber").value +"&sex="+document.getelementbyid("staffsex").value +"&job="+document.getelementbyid("staffjob").value; request.setrequestheader("content-type","application/x-www-form-urlencoded");//在post方法里必写,否则添加数据不起作用 request.send(data); request.onreadystatechange=function(){ if(request.readystate===4){//当服务器请求完成 if(request.status===200){//status==200为服务器请求成功 var data=json.parse(request.responsetext); if(data.success){//数据填写符合要求 document.getelementbyid('createresult').innerhtml=data.msg; }else{//数据填写不符合要求 document.getelementbyid('createresult').innerhtml="出现错误:"+data.msg; } }else{//服务器请求失败 alert("发生错误:"+request.status); } } } } } </script> <body> <h1>员工查询</h1> <label>请输入员工编号:</label> <input type="text" id="keyword"/> <button id="search">查询</button> <p id="searchresult"></p> <h1>员工创建</h1> <label>请输入员工姓名:</label> <input type="text" id="staffname"/><br> <label>请输入员工编号:</label> <input type="text" id="staffnumber"/><br> <label>请输入员工性别:</label> <select id="staffsex"> <option>男</option> <option>女</option> </select><br> <label>请输入员工职位:</label> <input type="text" id="staffjob"/><br> <button id="save">保存</button> <p id="createresult"></p> </body>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。