求个一段网页代码,语言(ajax,JQ)之类的,网站是用PHP写的,想实现一个功能,点一个(文字或按钮),
发生状态改变,状态只有两个,0和1,网页上显示(开和关),关键的是改变的同时要写入到数据库里去的(0,1),表名、字段随意了,跪求方法。。...
发生状态改变,状态只有两个,0和1,网页上显示(开和关),关键的是改变的同时要写入到数据库里去的(0,1),表名、字段随意了,跪求方法。。
展开
2个回答
展开全部
1.界面显示页面:
<div><input type="button" id="btn" value="开" onclick="doChange(this,100)" /></div></div>
<script language="javascript">
// AJAX类
function AJAXRequest() {
var xmlObj = false;
var CBfunc,ObjSelf;
ObjSelf=this;
try { xmlObj=new XMLHttpRequest; }
catch(e) {
try { xmlObj=new ActiveXObject("MSXML2.XMLHTTP"); }
catch(e2) {
try { xmlObj=new ActiveXObject("Microsoft.XMLHTTP"); }
catch(e3) { xmlObj=false; }
}
}
if (!xmlObj) return false;
this.method="POST";
this.url;
this.async=true;
this.content="";
this.callback=function(cbobj) {return;}
this.send=function() {
if(!this.method||!this.url||!this.async) return false;
xmlObj.open (this.method, this.url, this.async);
if(this.method=="POST") xmlObj.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xmlObj.onreadystatechange=function() {
if(xmlObj.readyState==4) {
if(xmlObj.status==200) {
ObjSelf.callback(xmlObj);
}
}
}
if(this.method=="POST") xmlObj.send(null);//this.content
else xmlObj.send(null);
}
}
//发送数据到服务器页面并处理服务器返回结果
function doChange(objBtn,btnId)
{
var _btnText=objBtn.value;
var _status=(objBtn.value=="开")?0:1; //获取状态 1:开启 0:关闭
var ajaxBtn=new AJAXRequest();
ajaxBtn.method=POST;
ajaxBtn.url="changestatus.php?id="+btnId+"&tag="+_status; //服务器端处理数据的页面
ajaxBtn.callback=function(objxml)
{
var _val =parseInt(objxml.responseText); //服务器端处理后返回值 1=成功 非1失败
if(_val==1)
{
objBtn.value="关"; //处理成功,则改变按钮状态文字
ajaxBtn=null;
}
else
{
alert("修改状态失败!");
}
}
ajaxBtn.send();
}
</script>
2.服务器端处理页面
<?php
@header("Content-type:text/html;charset='Gb2312'");
#接受JS发送的参数
$tag =intval($_REQUEST["tag"]);
$id =intval($_REQUEST["id"]);
//处理结果变量 result=1时代表操作成功
$result =0;
if($id>0)
{
$rs=@mysql_query("update 表 set status=$tag where id=$id");
if(false!=$rs)$result=1;
}
echo $result;
?>
思路就是这样 其他地方的细节问题自己调整下。
<div><input type="button" id="btn" value="开" onclick="doChange(this,100)" /></div></div>
<script language="javascript">
// AJAX类
function AJAXRequest() {
var xmlObj = false;
var CBfunc,ObjSelf;
ObjSelf=this;
try { xmlObj=new XMLHttpRequest; }
catch(e) {
try { xmlObj=new ActiveXObject("MSXML2.XMLHTTP"); }
catch(e2) {
try { xmlObj=new ActiveXObject("Microsoft.XMLHTTP"); }
catch(e3) { xmlObj=false; }
}
}
if (!xmlObj) return false;
this.method="POST";
this.url;
this.async=true;
this.content="";
this.callback=function(cbobj) {return;}
this.send=function() {
if(!this.method||!this.url||!this.async) return false;
xmlObj.open (this.method, this.url, this.async);
if(this.method=="POST") xmlObj.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xmlObj.onreadystatechange=function() {
if(xmlObj.readyState==4) {
if(xmlObj.status==200) {
ObjSelf.callback(xmlObj);
}
}
}
if(this.method=="POST") xmlObj.send(null);//this.content
else xmlObj.send(null);
}
}
//发送数据到服务器页面并处理服务器返回结果
function doChange(objBtn,btnId)
{
var _btnText=objBtn.value;
var _status=(objBtn.value=="开")?0:1; //获取状态 1:开启 0:关闭
var ajaxBtn=new AJAXRequest();
ajaxBtn.method=POST;
ajaxBtn.url="changestatus.php?id="+btnId+"&tag="+_status; //服务器端处理数据的页面
ajaxBtn.callback=function(objxml)
{
var _val =parseInt(objxml.responseText); //服务器端处理后返回值 1=成功 非1失败
if(_val==1)
{
objBtn.value="关"; //处理成功,则改变按钮状态文字
ajaxBtn=null;
}
else
{
alert("修改状态失败!");
}
}
ajaxBtn.send();
}
</script>
2.服务器端处理页面
<?php
@header("Content-type:text/html;charset='Gb2312'");
#接受JS发送的参数
$tag =intval($_REQUEST["tag"]);
$id =intval($_REQUEST["id"]);
//处理结果变量 result=1时代表操作成功
$result =0;
if($id>0)
{
$rs=@mysql_query("update 表 set status=$tag where id=$id");
if(false!=$rs)$result=1;
}
echo $result;
?>
思路就是这样 其他地方的细节问题自己调整下。
追问
错误报告是这一行的
var _val =parseInt(objxml.responseText); //服务器端处理后返回值 1=成功 非1失败
还有PHP页面上的问题,
header和masql_query前面加@是什么作用?
加了@好象这两个命令执行不起来的吧?
新手跪求指教!!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询