js用ajax和不同页面的php互相传值的方法

时间:2023-03-09 05:47:29
js用ajax和不同页面的php互相传值的方法

js里的代码:
<script>
var json;
//获取所有class名为zhi的标签
var zhi = document.getElementsByClassName('zhi'),temp3 = [];
for(var i=0;i<zhi.length;i++)
{
//把标签里的内容放在temps集合里
temp3.push(zhi[i].innerHTML)
}
$.ajax({
cache: false,
async: false, //注意:这里设置为flase,即同步操作,因为我们不需要异步操作,只是传参而已,当然,你也可以设置成异步。
contentType: "application/x-www-form-urlencoded; charset=utf-8", //这个要写对,和你的页面照应,你的页面是gb2312就填gb2312,我这里是utf8,否则中文传参会出错。
url: "../member/wenzhangshenhe.php", //这里填上你的php操作页面,即接受js参数的php页面。
type: "POST", //这里和php照应,这里填POST,php中就要用$_POST[]接受!
traditional: true, //序列化数据
data:{"jsdata":temp3[i].toString()}, //传过去的参数,我传过去一个id,接受时php这样写:$data=$_POST["jsdata"]; 变量名称当然可以更改。
error: function(){ //出错处理,一般加上,但其实传参没什么出错。
alert('请求超时');
},
success:function (data) //成功后的函数,注意,这里接受php返回的参数!!!!
{
//注意!!由于传参时会进行base64加密,所以你穿过去的参数和返回的参数都会很长,如果我们不用json的话,参数就会丢失一部分,因为传递有长度限制!所以我们不得不涉及到一个麻烦的东西json数组!
var a=data;
var ss;
ss=eval("("+a+")"); //eval()可以执行字符串中的js代码!
ffa(ss); //这是一个函数,用来得到传回来的参数。
}
});
var ss=this.json; //得到ajax返回的参数
function ffa(ss) //得到当前ajax回执的data,保存在json里。
{
this.json=ss;
}
</script>

<?php
if ($_POST['jsdata']) //这里的名字要和js里写的一样。
{
selecta($link); //执行函数,这个函数是自定义的。。
}
function selecta($link)
{
/* 你的操作数据库的命令。。。。。。。。。。。。。。
这里有一个很重要的东西,就是你返回的数据需要放到json数组里
json的写法不在详细介绍,样例是一维数组写法。 */
$a['data']=$rows['t_name']; //$rows['t_name']是数据库的数据。这样就有了一个json数组$a,它的键data中有值。
echo json_encode($a); //这句非常重要,这是php-->js的方式,如果不需要,就不用写。
}
?>