php与js的交互问题一直是一个非常重要的问题,在很多时候都会用到,而且,使用这种技术还可以带来更好的用户体验。小编今天就来讲一下如何进行php与js交互。
工具/原料
jquery
简单介绍AJAX
1、小编的交互方法是jQuery的$.ajax()。所谓ajax,就是AsynchronousJavascriptAndXML,也就是我们常说的js与XML异步技术。通过在后台与服务器进行少量数据交换,ajax可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。这样可以给用户更好的体验,如果你的网页比较大的情况下,可以先加载一部分,再加载剩下的,这样等到用户点击下面的东西时,已经加载好了,这样可以大大提高你的页面打开速度!比如,百度图片的显示就是用了ajax。先加载一部分图片,用户往下拖网页时,底下的图片已经加载好了!
2、ajax的作用是在后台与服务器进行少量的数据交换,那么,我们就可以将js的参数传递给php,然后让php操作数据库,再返回给js值,不管是js向php传参,还是php向js传参,都可以通过ajax实现!
$.AJAX()的使用
1、当然,$.ajax()方法的参数非常多,如果想要了解更深一些,自行百度。小编在这里只讲一些js与php传参用到的参数。附几张参数介绍图。这个不重要,我们来看一下传参时用的参数。
2、如图这就是所有用到的参数了。js的代码跗柿椁焚如下:---------------------------------------------幻腾寂埒-----------------------------------varjson;//这个变量是为了得到ajax返回的参数,如果你不需要php返回参数,那就不需要这些东西。$.ajax({ cache:false,async:false,//注意:这里设置为flase,即同步操作,因为我们不需要异步操作,只是传参而已,当然,你也可以设置成异步。 contentType:"application/x-www-form-urlencoded;charset=utf-8",//这个要写对,和你的页面照应,你的页面是gb2312就填gb2312,我这里是utf8,否则中文传参会出错。url:"../include/Mysql.php",//这里填上你的php操作页面,即接受js参数的php页面。type:"POST",//这里和php照应,这里填POST,php中就要用$_POST[]接受! traditional:true,//序列化数据data:{"jsdata":id},//传过去的参数,我传过去一个id,接受时php这样写:$data=$_POST["jsdata"];变量名称当然可以更改。error:function(){//出错处理,一般加上,但其实传参没什么出错。alert('请求超时');},success:function(data)//成功后的函数,注意,这里接受php返回的参数 {//注意!!由于传参时会进行base64加密,所以你穿过去的参数和返回的参数都会很长,如果我们不用json的话,参数就会丢失一部分,因为传递有长度限制!所以我们不得不涉及到一个麻烦的东西json数组! vara=data; varss; ss=eval("("+a+")");//eval()可以执行字符串中的js代码!ffa(ss);//这是一个函数,用来得到传回来的参数。 }});varss=this.json;//得到ajax返回的参数functionffa(ss)//得到当前ajax回执的data,保存在json里。{this.json=ss;}--------------------------------------------------------------------------------
3、以上代码显示了js-->php--->js的过程,如果你只需要js-->php--->mysql,那么就不需要json了。
4、php页面的代码如下-------颍骈城茇-------------------------------------------------------------------------<患修校楷?phpif($_POST['jsdata'])//这里的名字要和js里写的一样。{ selecta($link);//执行函数,这个函数是自定义的。。 }functionselecta($link){/*你的操作数据库的命令。。。。。。。。。。。。。。这里有一个很重要的东西,就是你返回的数据需要放到json数组里json的写法不在详细介绍,样例是一维数组写法。*/$a['data']=$rows['t_name'];//$rows['t_name']是数据库的数据。这样就有了一个json数组$a,它的键data中有值。echojson_encode($a);//这句非常重要,这是php-->js的方式,如果不需要,就不用写。}?>--------------------------------------------------------------------------------
5、js获得json数组后,取出操作如下:vari=ss['data'];//data是php中数组的键,只有对应好键,才能取出相应的值。json数组虽然麻烦,但是十分强大!你还可以试试多维的json数组储存数据。