【背景】 要對一條運輸信息進行修改。 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中沒有現成的函數,要通過自己寫。我從網上找的現成的,直接貼出來吧。
攔路虎:alert(GetQueryString(“pname”))時,出現了亂碼,因為pname是中文的嘛!
出現中文亂碼還能是因為啥……八成是編碼問題。 具體的為啥不想仔細寫了,貼參考地址: http://www.jb51.net/article/19850.htm 查了一段時間,找到了一個辦法,先這么用吧。
encodeURL對數據進行utf8編碼
然后用decodeURL對數據進行2次解碼。 調用上面說的方法GetQueryString(),獲取到地址欄中的參數。
這個時候地址欄變成了….
突然意識到,有時候看到的地址欄中也是亂七八糟的一串。
來一張跳轉成功并且顯示成功的效果圖:
【想要交流】 還有更簡單的方法來實現獲取url中參數不亂碼的嗎?
新聞熱點
疑難解答