【背景】 要对一条运输信息进行修改。 1.点击修改按钮 2.跳转到编辑页面 3.并且把数据库查询得到的内容填写到跳转网页的表单中
【说一下思路】 1.点击按钮之后,触发函数,这个函数能够获取到页面中被选中要修改的项目的标识,通过Ajax将此值传给php文件。 2.接下来php会进行数据库操作,把选中的项目信息查询出来,封装成json传回给js。 3.js从后台获取到返回值,解析json,得到项目信息值。 4.跳转网页到添加发布页面,把获取到的信息值填入该页面。
【针对上面的思路,要解决下面几个问题:】 1.php怎么封装json?js又怎么解析json 2.js跳转怎么实现? 3.js如何获取url中的参数?中文乱码问题如何解决?
解决过程真是异常艰难,在学习状态不好的情况下,用了一天半的时间,中间百度了无数,也问了无数次别人,像只被喂了食的小鸭子。
=>【php怎么封装json? js又怎么解析json】 在还没有意识到php向js回传数据时需要发送json前,js是无论如何都接收不到回值的。也不知道是为什么,一直在原地盘旋。以为是php没有post到值,做测试时发现php这边是可以输出想要的东西的。
比如设被选中的单选框id是2
$radio=2显示结果:
所以并不是php post不到值或者无法获得查询结果,而是回传有问题。 在查了很久的资料之后……好漫长,才知道要对于json进行封装。修改代码如下:
json_encode将上篇提到的【关联数组】转换成json格式,然后回传。接着在js中对回传的json格式进行解析:
首先,要接收到后台返回的数据:
htmla.respondseText得到的字符串,用jQuery.parseJSON()把json解析出来。
(PS:向ajax后台的程序发送xmlhttp请求的时候,后台程序接到请求后会进行处理,初级结束后,可以返回一串数据给前台,这个就是responseText。)
json的格式是键值对,那么是通过key来访问value的,所以会看到是infos.key获取到我们需要的值。
=> 【js跳转怎么实现?】 现在已经把值准备好了,接下来是把值传到页面,然后显示。首先就要解决如何转页面。 跳转很多方法,然而试过了,竟然奇迹般的都不行!!!! 最后找到一种办法,就是上图中的window.open(url)。
=> 【js如何获取url中的参数?中文乱码问题如何解决?】 好了,现在值也获取到了 ,页面也跳转了,解决最后一个问题吧! 在此之前我知道的都是php可以_GET()和_POST()可以获得参数。js中没有现成的函数,要通过自己写。我从网上找的现成的,直接贴出来吧。
function GetQueryString(name){ var reg = new RegExp("(^|&)"+name+"=([^&]*)(&|$)"); var r = window.location.search.substr(1).match(reg); if(r!=null) return encodeURI(unescape(r[2])); return null;}拦路虎:alert(GetQueryString(“pname”))时,出现了乱码,因为pname是中文的嘛!
出现中文乱码还能是因为啥……八成是编码问题。 具体的为啥不想仔细写了,贴参考地址: http://www.jb51.net/article/19850.htm 查了一段时间,找到了一个办法,先这么用吧。
encodeURL对数据进行utf8编码
然后用decodeURL对数据进行2次解码。 调用上面说的方法GetQueryString(),获取到地址栏中的参数。
这个时候地址栏变成了….
突然意识到,有时候看到的地址栏中也是乱七八糟的一串。
来一张跳转成功并且显示成功的效果图:
【想要交流】 还有更简单的方法来实现获取url中参数不乱码的吗?
新闻热点
疑难解答