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

作者: john110290 (KenMin)   2014-02-20 21:27:06
首先小弟新手參考這個範例
http://www.w3schools.com/php/php_ajax_database.asp
就是從資料庫讀出一筆多個欄位的資料
接下來我想用javascript對這些讀出來的欄位資料作一些後續的事情
是現成的函式 有點像是餵給它一些欄位資料當參數 來創造一個物件
但我不知道要寫在哪裡好?
我主要卡在:
因為在還沒做資料庫讀取之前
javascript的函式沒有參數可讀取
是可以寫一個判斷有沒有資料能讀再執行函式的東西嗎? (好像很迂迴?)
還是用PHP產生初始這個物件的code? (好像比較不建議用echo去生js?)
希望問得不會太混亂
我需要一些處理上的想法 感恩 :P
作者: ql4au04 (泡麵)   2014-02-20 23:17:00
看不太懂問題誒 不能寫一個js function 等有參數再去call嗎? 還是我根本誤會你的問題了XD
作者: LPH66 (-6.2598534e+18f)   2014-02-20 23:26:00
你所說的"用 PHP 產生初始這個物件的 code" 有一個名詞
作者: john110290 (KenMin)   2014-02-20 23:27:00
感謝回答!! 所以我是要寫一個按鈕來觸發js function嗎?
作者: LPH66 (-6.2598534e+18f)   2014-02-20 23:27:00
叫做 JSONP 參見維基 http://zh.wikipedia.org/wiki/JSONP
作者: john110290 (KenMin)   2014-02-20 23:28:00
我那個物件已經用js寫好了說 就式要丟參數變成實體感謝LPH66 想請問這是唯一(最單純)的辦法嗎? :P感謝ql4au04 請問要怎麼樣等到有參數再call @@
作者: LPH66 (-6.2598534e+18f)   2014-02-21 01:02:00
個人私心認為 JSONP 最好寫, 不過不容易安全 (維基有說)如果不要回傳程式的話回傳 JSON 過來 js 這邊再做事也是可行基本做法就是你查到的那樣, 只是 php 換成輸出 JSON然後 js 這邊接下來轉成 javascript 物件之後要做什麼就隨你
作者: xperiaZL (sony)   2014-02-21 13:06:00
感覺ajax去呼叫php讀取資料庫 回傳值的話 再把物件實體化
作者: john110290 (KenMin)   2014-02-21 13:36:00
為什麼我接到JSON a之後 a.id都是undefined? = =a然後直接秀a出來就會是{"id":"0", "其他"...} 這樣= =php那邊用的是json_encodejs這邊接的方法跟範例一樣用的是xmlhttp.responseText
作者: danny8376 (釣到一隻猴子@_@)   2014-02-21 14:17:00
response"""Text""" <<< 很清楚吧
作者: john110290 (KenMin)   2014-02-21 14:41:00
果然 感謝XD解決不了= = JSON.parse(xmlhttp.responseText)會出錯查到是用parse 但自己都試不出來 崩潰!!!!!Unchaught SyntaxError: Unexpected token <
作者: mrbigmouth (大嘴先生)   2014-02-21 16:41:00
會出錯就是格式有錯 你確定你是用json_encode?json_encode後有沒有加其他東西進去?直接看xmlhttp.responseText內容是什麼?
作者: john110290 (KenMin)   2014-02-21 16:43:00
直接看就是{"a"="123", "b"="456", ...}的東西打錯 {"a":"123", "b":"456", ...}啊...自解 000webhost有一個analytics code的功能...他讓我從php收到的JSON物件後面又附加了一長串字...這些字用alert才看得到 放在innerHTML看不到所以parse會有語法錯誤... 不過很奇怪 是不是我寫法不好才會收到000webhost的analytics code...? 這方面真不懂 囧
作者: mrbigmouth (大嘴先生)   2014-02-21 17:42:00
那串字說的是什麼?先把吐json時的php header的content-type改成application/json 看看
作者: LPH66 (-6.2598534e+18f)   2014-02-24 00:47:00
那個跟你的程式無關 (000webhost 大概是自動加的...)
作者: danny8376 (釣到一隻猴子@_@)   2014-02-24 09:20:00
000是直接所有PHP尾巴都會吐 要解的話 除了換空間外你只能用一般HTML的XHR去收 自己去尾巴之後 在parse至於樓樓上 000沒做那麼詳細wwww
作者: mrbigmouth (大嘴先生)   2014-02-24 09:46:00
這空間太差勁了XD原po自己收text去尾後再用JSON.parse吧所有主流瀏覽器都有
作者: danny8376 (釣到一隻猴子@_@)   2014-02-24 22:50:00
我不記得000有過好名聲啊wwwwww

Links booklink

Contact Us: admin [ a t ] ucptt.com