首页 > 网站 > WEB开发 > 正文

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

2024-04-27 15:17:19
字体:
来源:转载
供稿:网友

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


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表