鍍金池/ 問(wèn)答/HTML5  PHP  HTML/ 如何在js轉(zhuǎn)換返回的php array數(shù)據(jù)

如何在js轉(zhuǎn)換返回的php array數(shù)據(jù)

服務(wù)器上有A.php文件,做curl訪問(wèn)其他地址的B.php調(diào)取數(shù)據(jù)。B.php里面用print_r($array)返回?cái)?shù)組,A.php通過(guò)curl讀取B.php的數(shù)組,本地的C.js文件訪問(wèn)該服務(wù)器上A.php的返回結(jié)果如下:

圖片描述

data是返回的數(shù)組結(jié)果,但是是string類型。但是在js里需要用作array處理數(shù)據(jù)。

請(qǐng)問(wèn)A, B, C文件里哪里需要改進(jìn)或者修改,能實(shí)現(xiàn)C.js里能正確讀取得到數(shù)組。

以下是網(wǎng)頁(yè)讀取A.php的部分?jǐn)?shù)據(jù)結(jié)果截圖:

clipboard.png

謝謝各位。

回答
編輯回答
負(fù)我心

php和js數(shù)據(jù)傳輸一般是將array轉(zhuǎn)成json格式字符串輸出,js使用ajax得到j(luò)sondata之后
var arr = eval('('+jsondata+')');//得到數(shù)組arr[1] arr['name']這樣調(diào)用

2018年4月24日 02:20
編輯回答
離魂曲

一般php把結(jié)果,使用 echo json_encode($data);返回 json格式的字符串。

js使用現(xiàn)代瀏覽器的話,直接使用 var json=JSON.parse($jsonstr);即可。

另外,js 中不推薦使用 eval();
如果瀏覽器需要兼容舊的版本,可以去網(wǎng)上搜一下 js 處理 json 的庫(kù)。

2017年11月9日 15:14
編輯回答
不二心

這個(gè)print_r只是按照PHP的格式輸出,你要找一種通用的數(shù)據(jù)格式來(lái)傳數(shù)據(jù),比如這里用的多的可以用json, xml也行,PHP傳json 的話 ,把 print_r($array) 改成 echo json_encode($array);

這樣js獲取到的json格式數(shù)據(jù)就能轉(zhuǎn)了

2018年7月17日 23:28