[問題] 關於一個 php + mySQL 範例的延伸

看板Ajax作者 (KenMin)時間11年前 (2014/02/20 21:27), 編輯推噓7(7036)
留言43則, 6人參與, 最新討論串1/1
首先小弟新手參考這個範例 http://www.w3schools.com/php/php_ajax_database.asp 就是從資料庫讀出一筆多個欄位的資料 接下來我想用javascript對這些讀出來的欄位資料作一些後續的事情 是現成的函式 有點像是餵給它一些欄位資料當參數 來創造一個物件 但我不知道要寫在哪裡好? 我主要卡在: 因為在還沒做資料庫讀取之前 javascript的函式沒有參數可讀取 是可以寫一個判斷有沒有資料能讀再執行函式的東西嗎? (好像很迂迴?) 還是用PHP產生初始這個物件的code? (好像比較不建議用echo去生js?) 希望問得不會太混亂 我需要一些處理上的想法 感恩 :P -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.24.148.144

02/20 23:17, , 1F
看不太懂問題誒 不能寫一個js function 等有參數再去call
02/20 23:17, 1F

02/20 23:18, , 2F
嗎? 還是我根本誤會你的問題了XD
02/20 23:18, 2F

02/20 23:26, , 3F
你所說的"用 PHP 產生初始這個物件的 code" 有一個名詞
02/20 23:26, 3F

02/20 23:27, , 4F
感謝回答!! 所以我是要寫一個按鈕來觸發js function嗎?
02/20 23:27, 4F

02/20 23:27, , 5F
叫做 JSONP 參見維基 http://zh.wikipedia.org/wiki/JSONP
02/20 23:27, 5F

02/20 23:28, , 6F
我那個物件已經用js寫好了說 就式要丟參數變成實體
02/20 23:28, 6F

02/20 23:32, , 7F
感謝LPH66 想請問這是唯一(最單純)的辦法嗎? :P
02/20 23:32, 7F

02/20 23:50, , 8F
感謝ql4au04 請問要怎麼樣等到有參數再call @@
02/20 23:50, 8F

02/21 01:02, , 9F
個人私心認為 JSONP 最好寫, 不過不容易安全 (維基有說)
02/21 01:02, 9F

02/21 01:02, , 10F
如果不要回傳程式的話回傳 JSON 過來 js 這邊再做事也是可行
02/21 01:02, 10F

02/21 01:03, , 11F
基本做法就是你查到的那樣, 只是 php 換成輸出 JSON
02/21 01:03, 11F

02/21 01:04, , 12F
然後 js 這邊接下來轉成 javascript 物件之後要做什麼就隨你
02/21 01:04, 12F

02/21 13:06, , 13F
感覺ajax去呼叫php讀取資料庫 回傳值的話 再把物件實體化
02/21 13:06, 13F

02/21 13:36, , 14F
為什麼我接到JSON a之後 a.id都是undefined? = =a
02/21 13:36, 14F

02/21 13:36, , 15F
然後直接秀a出來就會是{"id":"0", "其他"...} 這樣= =
02/21 13:36, 15F

02/21 13:38, , 16F
php那邊用的是json_encode
02/21 13:38, 16F

02/21 13:39, , 17F
js這邊接的方法跟範例一樣用的是xmlhttp.responseText
02/21 13:39, 17F

02/21 14:17, , 18F
response"""Text""" <<< 很清楚吧
02/21 14:17, 18F

02/21 14:41, , 19F
果然 感謝XD
02/21 14:41, 19F

02/21 15:40, , 20F
解決不了= = JSON.parse(xmlhttp.responseText)會出錯
02/21 15:40, 20F

02/21 15:40, , 21F
查到是用parse 但自己都試不出來 崩潰!!!!!
02/21 15:40, 21F

02/21 15:42, , 22F
Unchaught SyntaxError: Unexpected token <
02/21 15:42, 22F

02/21 16:41, , 23F
會出錯就是格式有錯 你確定你是用json_encode?
02/21 16:41, 23F

02/21 16:41, , 24F
json_encode後有沒有加其他東西進去?
02/21 16:41, 24F

02/21 16:42, , 25F
直接看xmlhttp.responseText內容是什麼?
02/21 16:42, 25F

02/21 16:43, , 26F
直接看就是{"a"="123", "b"="456", ...}的東西
02/21 16:43, 26F

02/21 16:43, , 27F
打錯 {"a":"123", "b":"456", ...}
02/21 16:43, 27F

02/21 17:06, , 28F
啊...自解 000webhost有一個analytics code的功能...
02/21 17:06, 28F

02/21 17:06, , 29F
他讓我從php收到的JSON物件後面又附加了一長串字...
02/21 17:06, 29F

02/21 17:07, , 30F
這些字用alert才看得到 放在innerHTML看不到所以parse
02/21 17:07, 30F

02/21 17:07, , 31F
會有語法錯誤... 不過很奇怪 是不是我寫法不好才會
02/21 17:07, 31F

02/21 17:08, , 32F
收到000webhost的analytics code...? 這方面真不懂 囧
02/21 17:08, 32F

02/21 17:42, , 33F
那串字說的是什麼?
02/21 17:42, 33F

02/21 17:44, , 34F
先把吐json時的php header的content-type改成
02/21 17:44, 34F

02/21 17:44, , 35F
application/json 看看
02/21 17:44, 35F

02/24 00:47, , 36F
那個跟你的程式無關 (000webhost 大概是自動加的...)
02/24 00:47, 36F

02/24 09:20, , 37F
000是直接所有PHP尾巴都會吐 要解的話 除了換空間外
02/24 09:20, 37F

02/24 09:22, , 38F
你只能用一般HTML的XHR去收 自己去尾巴之後 在parse
02/24 09:22, 38F

02/24 09:30, , 39F
至於樓樓上 000沒做那麼詳細wwww
02/24 09:30, 39F

02/24 09:46, , 40F
這空間太差勁了XD
02/24 09:46, 40F

02/24 09:46, , 41F
原po自己收text去尾後再用JSON.parse吧
02/24 09:46, 41F

02/24 09:46, , 42F
所有主流瀏覽器都有
02/24 09:46, 42F

02/24 22:50, , 43F
我不記得000有過好名聲啊wwwwww
02/24 22:50, 43F
文章代碼(AID): #1J1WAjoq (Ajax)
文章代碼(AID): #1J1WAjoq (Ajax)