异步更新php数据库,ajax异步刷新实现更新数据库_jquery

上篇文章都是关于界面的东西,下面写关于如何把无刷新的把数据写入到数据库中。

11a36868c12177d60e0d5d211907f3cb.png

当我们改变某一个人或某几个人的某项分值实现无刷新写入数据库。

首先,我们需要声明XMLHttpRequest对象

//声明XMLHttpRequest对象

var xmlHttp;

function createXMLHTTP() {

if (window.XMLHttpRequest) {

xmlHttp = new XMLHttpRequest(); //Mozilla浏览器

}

else if (window.ActiveXObject) {

try {

xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); //IE老版本

}

catch (e)

{ }

try {

xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); //IE新版本

}

catch (e)

{ }

if (!xmlHttp) {

window.alert("不能创建XMLHttpRequest对象实例!");

return false;

}

}

}

同时,需要回调函数来确定是否修改成功

//更新或者添加记录的回调函数(检验是否评分成功)

function ModifyScore ()

{

if (xmlHttp.readyState == 4)

{

// if (xmlHttp.status == 200)

{

if (xmlHttp.responseText == "true")

{

}

else

{

// alert("评分失败,请重新评分或者与管理员联系");

}

}

}

}

准备工作完成之后,下面就是关键的一步:

因为需要在修改分值的时候写入数据库,所以只需要在上篇博客中提高的改变下拉框值(循环选中项时)的执行这样一段代码:

//获取互评ID

var criticsID = checkbox[i].value;

//把修改值写入数据库

//获取项目分数

var scoreAll = document.getElementById("score" +checkbox[i].value + srcElem.id + "");

var accessAllScore = scoreAll.outerText;

//获取项目编号

var assess = document.getElementById("assess" + srcElem.id);

var assessID = assess.title;

createXMLHTTP(); //创建XMLHttpRequest对象

//把数据传入到另一个页面执行

var url = "CriticsAgainAjax.aspx?criticsID=" + criticsID +"&assessID=" + assessID + "&accessAllScore=" +accessAllScore + "&Event=allCriticsInfo";

xmlHttp.open("Post", url, true);

// xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");

xmlHttp.onreadystatechange = AnswerOneKindQuestion;

xmlHttp.send(null);

最后,我们只需要在CriticsAgainAjax.aspx获取参数,并执行写入数据库就可以了

//获取参数

if(Request.QueryString["Event"].ToString() =="allCriticsInfo")

{

string criticsID = Request.QueryString["criticsID"].ToString();

string assessID = Request.QueryString["assessID"].ToString();

string accessAllScore =Request.QueryString["accessAllScore"].ToString();

}

参数传过来之后,写入数据库就很容易了,这里就不提了。

这样,在前台显示的效果就是没有刷新,时时的把数据写入到数据库。只是把脏活累活都交给CriticsAgainAjax.aspx页面来干,这也是一种不错的分工。

这样写出了少刷新以外,还有另一个好处就是ajax是异步操作,即在js页面中把数据抛到CriticsAgainAjax.aspx之后,他就继续执行,他不考虑CriticsAgainAjax.aspx是否执行完成,可能抛过来100条数据,写入数据库需要三秒钟,而抛过来的时间是非常快的,可能就零点几秒,所以用户的感觉会非常好,他不需要在选中后等半天才能继续执行。

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以通过以下步骤从数据库获取数据并实现异步刷新显示饼状图: 1. 首先,确保你已经安装了FastAdmin和相关依赖。可以使用Composer来安装FastAdmin和必要的扩展。 2. 创建一个数据库表,用于存储饼状图数据。表结构可以包含字段如下: - id:饼状图数据的唯一标识 - label:数据项的标签 - value:数据项的值 3. 在FastAdmin中创建一个控制器,用于处理异步请求并获取数据库中的饼状图数据。你可以在控制器中使用Model来查询数据库并获取数据。例如,使用ThinkPHP框架的话,可以这样写: ```php use think\Controller; use app\admin\model\PieData; class PieController extends Controller { public function getData() { $data = PieData::select(); return json($data); } } ``` 4. 在前端页面中使用Ajax来发送异步请求并获取饼状图数据。你可以在页面中使用JavaScript来实现这个功能。例如,使用jQuery的话,可以这样写: ```javascript $.ajax({ url: '/admin/pie/getData', type: 'GET', dataType: 'json', success: function(data) { // 在这里使用返回的数据来绘制饼状图 // 例如使用Chart.js等图表库 } }); ``` 5. 在页面中使用图表库来绘制饼状图。你可以选择使用一些流行的JavaScript图表库,如Chart.js、Highcharts等。根据你选择的库,按照其文档提供的方法来绘制饼状图,并将异步获取到的数据传递给图表库进行展示。 这样,你就可以通过以上步骤从数据库获取数据并实现异步刷新显示饼状图了。记得在控制器中处理数据查询和前端页面中处理异步请求和绘制图表的逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值