js与php的交互问题

2022年8月2日 28点热度 0人点赞

php与js的交互问题一直是一个非常重要的问题,在很多时候都会用到,而且,使用这种技术还可以带来更好的用户体验。

小编今天就来讲一下如何进行php与js交互。

工具/原料

  • jquery

简单介绍AJAX

  1. 1

    小编的交互方法是jQuery的$.ajax()。

    所谓ajax,就是Asynchronous Javascript And XML,也就是我们常说的js与XML异步技术。

    通过在后台与服务器进行少量数据交换,ajax 可以使网页实现异步更新。

    这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。

    这样可以给用户更好的体验,如果你的网页比较大的情况下,可以先加载一部分,再加载剩下的,这样等到用户点击下面的东西时,已经加载好了,这样可以大大提高你的页面打开速度!

    比如,百度图片的显示就是用了ajax。先加载一部分图片,用户往下拖网页时,底下的图片已经加载好了!

  2. 2

    ajax的作用是在后台与服务器进行少量的数据交换,那么,我们就可以将js的参数传递给php,然后让php操作数据库,再返回给js值,不管是js向php传参,还是php向js传参,都可以通过ajax实现!

    END

$.AJAX()的使用

  1. 1

    当然,$.ajax()方法的参数非常多,如果想要了解更深一些,自行百度。小编在这里只讲一些js与php传参用到的参数。附几张参数介绍图。

    这个不重要,我们来看一下传参时用的参数。

  2. 2

    如图

    这就是所有用到的参数了。

    js的代码如下:

    --------------------------------------------------------------------------------

    var json;   //这个变量是为了得到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数组!

    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;}

    --------------------------------------------------------------------------------

  3. 3

    以上代码显示了js-->php--->js的过程,如果你只需要js-->php--->mysql,那么就不需要json了。

  4. 4

    php页面的代码如下

    --------------------------------------------------------------------------------

    <?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的方式,如果不需要,就不用写。

    }

    ?>

    --------------------------------------------------------------------------------

  5. 5

    js获得json数组后,取出操作如下:

    var i=ss['data'];

    //data是php中数组的键,只有对应好键,才能取出相应的值。

    json数组虽然麻烦,但是十分强大!你还可以试试多维的json数组储存数据。

    END

注意事项

  • jquery文件一定要引入,如果出现未定义jquery函数error,你可以关注我,查看我以前的经验,里面有一篇是关于jquery出错的。
经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。
作者声明:本篇经验系本人依照真实经历原创,未经许可,谢绝转载。
展开阅读全部

laozhao

这个人很懒,什么都没留下

文章评论