台灣最大程式設計社群網站
線上人數
1754
 
會員總數:243307
討論主題:188090
歡迎您免費加入會員
討論區列表 >> AJAX / JSON / jQuery >> 利用json js和php互相傳值
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
利用json js和php互相傳值
價值 : 50 QP  點閱數:870 回應數:3

樓主

Andy
門外漢
0 4
70 8
發送站內信

最近學了JSON,想說嘗試用JSON的格式在javascript和php兩邊互相傳遞資料。
我之前都是在js端編出一個物件,比如:
var Obj={"name":"Andy","age":99};
jstr = JSON.stringify(Obj);
我是透過AJAX方式傳給php檔
xhttp.open("GET","xxxx.php?json="+jstr,true);
xhttp.send();

在php端我則是用
$jstr = $_GET['json'];
$arr = json_decode($jstr,true);
用這種方式我可以將js端地物間在php接收後轉成陣列,之後再用
$arr['name']; $arr['age'];
這種方式來取得Andy,99這些資料。


可是用這種方式我在js端設計的物件內容數量是寫死的(就只有name跟age),但我希望今天是動態產生,比如可以輸入要幾個人的資料,之後js會產生相對應的物件。
我想過將值用陣列方次呈現 比如: var Obj={"name":這邊一個名字陣列,"age":這邊一個年齡陣列};

問題: 1.在陣列的地方我直接帶入陣列名字即可嗎? 2.我在php端該如何接收陣列內容?假設我要接收name[2]的值。
ps. 如果有更好的方法也可以說,因為我目前查到的方法是用xhttp.open,xhttp.send()去傳,再用$jstr = $_GET['json']這種方法來接收。




搜尋相關Tags的文章: [ JSON ] , [ AJAX ] ,
本篇文章發表於2017-09-15 10:30
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

小魚
檢舉此回應
通常回傳是用List(Array?)的方式,
就是[{"name":"Andy","age":99},{"name":"Andy","age":99},{"name":"Andy","age":99},{"name":"Andy","age":99},{"name":"Andy","age":99},{"name":"Andy","age":99}]
之類的方式,
可以讓PHP幫你將Array轉成json格式,
抓資料時抓第幾個Array的name值或age值
本篇文章回覆於2017-09-15 12:13
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

Andy
檢舉此回應
假設我有一個name arrar跟age array
var name = ["Andy","Wendy","Sandy"];
var age = [99,98,97];
var body={"name":name , "age",age};
可以將陣列直接帶進去嗎?

如果可以,在php端該如何取出"Wendy"這個值?

因為如果只是單個值我會抓取,但如果是陣列我試不出來..
本篇文章回覆於2017-09-15 13:14
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

迷路
捐贈 VP 給 迷路 檢舉此回應
說真的與其費心的去處理動態陣列
不如直接用JQuery,它的ajax()已經物件化,非常好用的說
如果你堅持非用js不可,我就只能提示你方向了
JS使用JSON格式需注意一點,JS的陣列key值只能是數字,
像name、age值之類,你要用物件來處理
https://developer.mozilla.org/zh-TW/docs/Web/JavaScript/Guide/Working_with_Objects
你要建立物件存值,然後將物件加入到陣列中,最後再轉成JSON字串傳出
本篇文章回覆於2017-09-15 15:14
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.