页面跳转+把数据库中查出的内容显示在该页面上

背景
要对一条运输信息进行修改。
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中参数不乱码的吗?

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值