【背景】 要對(duì)一條運(yùn)輸信息進(jìn)行修改。 1.點(diǎn)擊修改按鈕 2.跳轉(zhuǎn)到編輯頁(yè)面 3.并且把數(shù)據(jù)庫(kù)查詢得到的內(nèi)容填寫到跳轉(zhuǎn)網(wǎng)頁(yè)的表單中
【說一下思路】 1.點(diǎn)擊按鈕之后,觸發(fā)函數(shù),這個(gè)函數(shù)能夠獲取到頁(yè)面中被選中要修改的項(xiàng)目的標(biāo)識(shí),通過Ajax將此值傳給php文件。 2.接下來php會(huì)進(jìn)行數(shù)據(jù)庫(kù)操作,把選中的項(xiàng)目信息查詢出來,封裝成json傳回給js。 3.js從后臺(tái)獲取到返回值,解析json,得到項(xiàng)目信息值。 4.跳轉(zhuǎn)網(wǎng)頁(yè)到添加發(fā)布頁(yè)面,把獲取到的信息值填入該頁(yè)面。
【針對(duì)上面的思路,要解決下面幾個(gè)問題:】 1.php怎么封裝json?js又怎么解析json 2.js跳轉(zhuǎn)怎么實(shí)現(xiàn)? 3.js如何獲取url中的參數(shù)?中文亂碼問題如何解決?
解決過程真是異常艱難,在學(xué)習(xí)狀態(tài)不好的情況下,用了一天半的時(shí)間,中間百度了無(wú)數(shù),也問了無(wú)數(shù)次別人,像只被喂了食的小鴨子。
=>【php怎么封裝json? js又怎么解析json】 在還沒有意識(shí)到php向js回傳數(shù)據(jù)時(shí)需要發(fā)送json前,js是無(wú)論如何都接收不到回值的。也不知道是為什么,一直在原地盤旋。以為是php沒有post到值,做測(cè)試時(shí)發(fā)現(xiàn)php這邊是可以輸出想要的東西的。
比如設(shè)被選中的單選框id是2
$radio=2顯示結(jié)果:
所以并不是php post不到值或者無(wú)法獲得查詢結(jié)果,而是回傳有問題。 在查了很久的資料之后……好漫長(zhǎng),才知道要對(duì)于json進(jìn)行封裝。修改代碼如下:
json_encode將上篇提到的【關(guān)聯(lián)數(shù)組】轉(zhuǎn)換成json格式,然后回傳。接著在js中對(duì)回傳的json格式進(jìn)行解析:
首先,要接收到后臺(tái)返回的數(shù)據(jù):
htmla.respondseText得到的字符串,用jQuery.parseJSON()把json解析出來。
(PS:向ajax后臺(tái)的程序發(fā)送xmlhttp請(qǐng)求的時(shí)候,后臺(tái)程序接到請(qǐng)求后會(huì)進(jìn)行處理,初級(jí)結(jié)束后,可以返回一串?dāng)?shù)據(jù)給前臺(tái),這個(gè)就是responseText。)
json的格式是鍵值對(duì),那么是通過key來訪問value的,所以會(huì)看到是infos.key獲取到我們需要的值。
=> 【js跳轉(zhuǎn)怎么實(shí)現(xiàn)?】 現(xiàn)在已經(jīng)把值準(zhǔn)備好了,接下來是把值傳到頁(yè)面,然后顯示。首先就要解決如何轉(zhuǎn)頁(yè)面。 跳轉(zhuǎn)很多方法,然而試過了,竟然奇跡般的都不行!!!! 最后找到一種辦法,就是上圖中的window.open(url)。
=> 【js如何獲取url中的參數(shù)?中文亂碼問題如何解決?】 好了,現(xiàn)在值也獲取到了 ,頁(yè)面也跳轉(zhuǎn)了,解決最后一個(gè)問題吧! 在此之前我知道的都是php可以_GET()和_POST()可以獲得參數(shù)。js中沒有現(xiàn)成的函數(shù),要通過自己寫。我從網(wǎng)上找的現(xiàn)成的,直接貼出來吧。
攔路虎:alert(GetQueryString(“pname”))時(shí),出現(xiàn)了亂碼,因?yàn)閜name是中文的嘛!
出現(xiàn)中文亂碼還能是因?yàn)樯丁顺墒蔷幋a問題。 具體的為啥不想仔細(xì)寫了,貼參考地址: http://www.jb51.net/article/19850.htm 查了一段時(shí)間,找到了一個(gè)辦法,先這么用吧。
encodeURL對(duì)數(shù)據(jù)進(jìn)行utf8編碼
然后用decodeURL對(duì)數(shù)據(jù)進(jìn)行2次解碼。 調(diào)用上面說的方法GetQueryString(),獲取到地址欄中的參數(shù)。
這個(gè)時(shí)候地址欄變成了….
突然意識(shí)到,有時(shí)候看到的地址欄中也是亂七八糟的一串。
來一張跳轉(zhuǎn)成功并且顯示成功的效果圖:
【想要交流】 還有更簡(jiǎn)單的方法來實(shí)現(xiàn)獲取url中參數(shù)不亂碼的嗎?
新聞熱點(diǎn)
疑難解答
圖片精選