php文件与HTML页面的数据交互
注意:首先需要保证本地配置了php开发环境,如WAMP开发环境
WAMP配置:https://www.cnblogs.com/shiyiaccn/p/9984579.html
php获取HTML页面返回的数组并写入文档
HTML发送(使用POST发送)
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
</head> <body>
<div class='search-choose' id='search_choose'>
<ul>
<li id='search_1' class='search-selected'><a href='#'>dog</a></li>
<li id='search_2'><a href='#'>cat</a></li>
</ul>
</div> <script type='text/javascript'>
searchArray = document.getElementsByTagName('li');//获取名字为’li’的所有标签项并存入数组
var writeArray = [];
for(var i = 0;i<searchArray.length;i++){
writeArray[i] = searchArray[i].innerText;//获取标签内容writeArray = ['dog','cat'];
} //使用POST将数组writeArray发送到php文件servertest.php
var request = new XMLHttpRequest();
request.open("POST", "servertest.php");
var q = "data=" + writeArray;// q="name"+ value;
//发送内容体由name+value组成,此处name为data,value为writeArray
request.setRequestHeader("Content-type","application/x-www-form-urlencoded");
request.send(q);
request.onreadystatechange = function() {
if (request.readyState===4) {
if (request.status===200) {
} else {
alert("发生错误:" + request.status);
}
}
}
</script>
</body>
</html>
注:关键操作
var request = new XMLHttpRequest();
request.open("POST", "servertest.php");
var q = "data=" + writeArray;// 生成信息体q = “name “+ value
request.setRequestHeader("Content-type","application/x-www-form-urlencoded");
request.send(q);
//HTML页面POST发送内容后,php通过超全局变量 $_GET 和 $_POST收集
php接收(使用超全局变量$_GET 和 $_POST收集)
<?php
//设置页面内容是html编码格式是utf-8
header("Content-Type: text/plain;charset=utf-8");
//判断如果是get请求,则执行getMethod();;如果是POST请求,则执行postMethod()。
//$_SERVER是一个超全局变量,在一个脚本的全部作用域中都可用,不用使用global关键字
if ($_SERVER["REQUEST_METHOD"] == "GET") {
getMethod();
} elseif ($_SERVER["REQUEST_METHOD"] == "POST"){
postMethod();
}
function searchShow(){
}
function postMethod(){
$filename = 'save.txt';
//使用超全局变量 $_GET 和 $_POST收集name对应的value,如下
$searchWrite = $_POST["data"];
//将获取的HTML返回内容$searchWrite写入文档save.txt
file_put_contents($filename, $searchWrite);
$content = file_get_contents($filename);
echo $content;
}
注:关键操作
$searchWrite = $_POST["data"];
使用超全局变量 $_POST收集name对应的value放入$searchWrite,于是得到了HTML页面发送的数据,可以用了
HTML页面通过json获取php的变量
php发送(通过echo返回json格式的数据对)
<?php
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");
if ($_SERVER["REQUEST_METHOD"] == "GET") {
getMethod();
} elseif ($_SERVER["REQUEST_METHOD"] == "POST"){
postMethod();
}
function getMethod(){
$filename = 'search_save.txt';//假设文件内容为dog,cat,pig,人
if (file_exists($filename)) {
$content = file_get_contents($filename);
$pattern = '/[\x{4e00}-\x{9fa5}_a-zA-Z0-9]+/u';
//[\x{4e00}-\x{9fa5}_a-zA-Z0-9]匹配中文、下划线、字母、数字
preg_match_all($pattern, $content, $matches);
$searchRead = $matches[0];//通过正则表达式提取存储列表到$searchRead数组['dog','cat','pig','人']
$defaultSearch = $searchRead[0];
$result = '{"success":false,"defaultSearch":""}';
if($_GET["data"]){
$result = '{"success":true,"defaultSearch":"'.$defaultSearch.'"}';
}
}
echo $result;//echo返回json格式化数据对{"success":true,"defaultSearch":"'.$defaultSearch.'"}
}
functionpostMethod(){
}
注:关键操作
$result = '{"success":true,"defaultSearch":"'.$defaultSearch.'"}';//将待返回内容改为json格式
echo $result;//HTML页面的json部分将从echo的输出获取json格式化数据对,因此echo输出内容需要为json格式
HTML接收(通过GET接收php echo返回的json格式的数据对)
<script type='text/javascript'>
$(document).ready(function(){
$.ajax({
type: "GET",
url: "default_search.php?data=" + value,//value为HTML向url发送的内容体,在php中可以通过超全局变量收集
dataType: "json",
//data为php使用echo返回的json格式的数据对,通过data.name的形式即可以使用name对应的value
success: function(data) {
if (data.success) {
alert(data.defaultSearch);
}
},
error: function(jqXHR){
alert("发生错误:" + jqXHR.status);
},
});
});
</script>
注:关键操作
$.ajax({
type: "GET",
url: "default_search.php?data=" + "searchArray",
dataType: "json",
success: function(data) {
If(data.success){alert(data.defaultSearch);}
//data为php使用echo输出的json格式的数据对,通过data.name的形式即可以使用name对应的value
},
error: function(jqXHR){
alert("发生错误:" + jqXHR.status);
},
});
});
php文件与HTML页面的数据交互的更多相关文章
- 通过Excel文件快速创建页面和数据表
在设计一个软件系统,构建过程:需求->数据表->系统开发.实际情况是需求(数据)很多来源于已经存在的文件中,客户会要求把这些数据“电子化”,这就给需求分析产生了很大的工作量: 分析这些原始 ...
- from表单实现无跳转上传文件,接收页面后台数据
实现无跳转发送表单数据.文件,并能接收后台返回的数据. 主要技术要点: 1.form表单添加target属性,指定一个iframme的name:form表单提交后在iframe内嵌窗口接受响应,主页面 ...
- from表单实现无跳转上传文件,接收页面后台数据。
本文基于我刚写的http://www.cnblogs.com/iwang5566/p/6287529.html进行了简单的扩展,实现页面无跳转表单数据提交,并接收后台返回的数据. 下载好,上一篇文章d ...
- 关于AJAX+HTML5+ASHX进行全静态页面的数据交互
及时总结项目中使用到的知识,知识在于积累. 1.HTML代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN ...
- flash数据交互
新随笔 联系 订阅 管理 随笔 - 14 文章 - 5 评论 - 0 安卓中webview读取html,同时嵌入Flex的SWF,交互 安卓activity与html交互很简单,用javascri ...
- QtQuick多页面切换、多页面切换动画、多个qml文件数据交互
一.QtQuick多页面切换方法 (1)“隐藏法” 前一个视图visible设为false或者透明度opacity设为0,相当于“隐藏”了,实际还存在: 要显示的视图visible设为true或者透明 ...
- 两种方法实现asp.net方案的前后端数据交互(aspx文件、html+ashx+ajax)
一个HTML页面只能显示HTML代码信息,不能与数据库进行数据的交互.asp.net方案提供了网页与数据库交互的方法,这里举出两种:①aspx文件 ②ashx文件+ajax技术 一.创建数据库 这里以 ...
- MUI框架-10-MUI 数据交互-跳转详情页面
MUI框架-10-MUI 数据交互-跳转详情页面 上一篇介绍了如何实现数据交互,给别人的 API 发送 ajax 请求,我们得到数据,再使用 art-template 模板引擎拼接 HTML,最终实现 ...
- SpringMVC框架笔记02_参数绑定返回值文件上传异常处理器JSON数据交互_拦截器
目录 第1章 高级参数的绑定 1.1 参数的分类 1.2 数组类型的参数的绑定 1.3 集合类型的参数的绑定 第2章 @RequestMapping的用法 2.1 URL路径映射 2.2 请求方法限定 ...
随机推荐
- Mybatis延迟加载、缓存
一.Mybatis中的延迟加载 1.延迟加载背景:Mybatis中Mapper配置文件中的resultMap可以实现高级映射(使用association.collection实现一对一及一对多(多对多 ...
- cad2013卸载/安装失败/如何彻底卸载清除干净cad2013注册表和文件的方法
cad2013提示安装未完成,某些产品无法安装该怎样解决呢?一些朋友在win7或者win10系统下安装cad2013失败提示cad2013安装未完成,某些产品无法安装,也有时候想重新安装cad2013 ...
- iOS 抓包
通过tcpdump对iOS进行流量分析(无需越狱 iOS Packet Tracing 将 iOS 设备通过 USB 连接到 Mac 打开 terminal rvictl -s $UDID 运行 tc ...
- Shell-2--输入输出重定向
自己写一下吧,免得又忘了,被人问到,被鄙视 0 表示标准输入, 1 表示标准输出 , 2 表示标准错误输出 一个 > 表示已覆盖的方式把命令的正确执行重定向到文件 两个 >> 表示是 ...
- 《机器学习实战(基于scikit-learn和TensorFlow)》中英文资源+源码 下载
https://pan.baidu.com/s/1iTIoa4RXdK-lo_QEgLEOFw 提取码:76hf
- Testing - 软件测试知识梳理 - 自动化测试
软件开发的过程是一个持续集成和改进的过程,而每一次的改进都可能引进新bug,因此当软件的一部,或者全部修改时,都需要对软件产品重新进行测试. 其目的是要验证修改后的产品是符合需求的,而当没有自动化测试 ...
- 学生成绩管理系统3.0(JSP+Servlet+MySQL)
源代码:戳这里! (2019-01-08 更新 惊讶于这么久了还有人看这个项目 于是把代码传到 github 了(辣鸡CSDN) https://github.com/G-lory/StudentAc ...
- url参数+,&,=,/等转义编码
url出现了有+,空格,/,?,%,#,&,= 等特殊符号的时候,可能在服务器端无法获得正确的参数值. 案例: <img src="BarCode39.aspx?barcode ...
- UFLDL 教程学习笔记(一)神经网络
UFLDL(Unsupervised Feature Learning and Deep Learning)Tutorial 是由 Stanford 大学的 Andrew Ng 教授及其团队编写的一套 ...
- 从零开始学 Web 之 BOM(四)client系列
大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...