您好:請問
1.View一個按鈕 ,按下去 他會去呼叫 control 內的XX()
2.controls 內的XX()-->呼叫 model內的 XX();//model
3.於model 內的XX();去下SQL ,reurn $datax;
因為在model 內有多個判斷,這該如呵去DEBUG呢?
3-1.我用 echo "YY";
-->整個程式 沒反應
chrome 的console
Uncaught SyntaxError: Unexpected token Y in JSON at position 0
3-2.我若用
echo '';
echo 'console.log('. 'ZZ' .')';
echo '';
-->整個程式 沒反應
chrome 的console
Uncaught SyntaxError: Unexpected token < in JSON at position 0
以上都是將語法放在SQL 字串前面
若我放到 XX();//model 的return 前面
可以正常RUN,但 卻沒有log 秀出
是否 因為在VIEW的頁面,無法秀出 model 的log?
那該如何 秀出 XX();//model 的log呢?
說真的,這就是你觀念不夠所造成的結果。
當請的應用格式為json的情況下。
你所輸出的東西當然就得符合json的格式。要不然就會直接出現「JSON at position 0」這樣的錯誤。其錯誤也只是告訴你無法正常的辨別處理。
由於不清楚你的輸出方式為何。如果是採用ajax的方式並要求json的話。
一般要debug有兩種方式可以做
將其test的數據,也同樣放入到要輸出的json。
在其ajax上才跑console.log去輸出接收的值。
不使用json回傳格式。改使用txt或是html等文字輸出方式。這樣就不會有格式不正常的問題。你也可以看到正常的值出現。
還有,這邊要糾正你一個問題。
echo 'console.log('. 'ZZ' .')';是啥鬼啊?
你該不會認為echo一個命令出來給前端輸出就可以跑這樣的命令??
你這樣做並不是運行console.log。而只是單純輸出一個console.log('. 'ZZ' .')字串而已。不要前後端搞不清楚。
您好:
謝謝各位!
echo 'console.log('. 'ZZ' .')';是啥鬼啊?
這一段,我只是想要在model 的 func xx(){}內
因為現有CODE 有多段 SQL 語法 及 SQL結果 抓出來給PHP 運算,再丟回 另一個SQL
我只是想 用來 查看 他的 結果來DEBUG。
例如第一個 SQL 語法,有3個欄位, 他抓出來程式判斷,再將探段結果丟給 另一個SQL 語法,這一個結果可能得到5個欄位
這樣,適合 每丟一次,就 也同樣放入到要輸出的json 嗎?
不好意思,初學,請見諒!
當你宣告了json格式回傳的情況。其輸出的值就一定得是
{}
[]
以上這兩種格式。javascript一但接收了這樣的格式,會將其轉換為json物件處理。
但如果你輸出的是
{}
console.log('ZZ')
並不符合其json格式,自然就會爆格式錯誤的訊息出來。
另外告訴你的是,不要認為後端可以輸出javascript命令字串。
其javascript就會去執行。這是錯誤的。
因為除非你的javascript接收端是採用script格式或是利用eval的方式運行。才有可能幫你跑命令。
要不然對它來說,你只是喂給它一個字串。並不會跑語法。
總結來說,你要接收什麼格式,你就得輸出什麼格式給他才行。
沒辦法隨便給的。
您好:謝謝!
不好意思,再請教
不使用json回傳格式。改使用txt或是html等文字輸出方式。這樣就不會有格式不正常的問題。你也可以看到正常的值出現。
請問在後端,這就不需要用JS 來輸出嗎?
直接用PHP 來輸出嗎?
謝謝!
在後端,您可以組合出前端瀏覽器看得懂的語言,讓前端瀏覽器來執行。
比如說,您的echo 'console.log('. 'ZZ' .')';直接輸出會被當成一般的html,前端瀏覽器就只會直接呈現~~
您這句應該是javascript吧,瀏覽器怎麼識別是html/javascript/css呢?是透過標籤
所以您的這句就可以改成
echo '< script >console.log('. 'ZZ' .');< /script >';
讓瀏覽器知道這個script標籤內的內容是要執行的~~
您好:
謝謝您!
不過我試著在model 內的 fucn()內 程式開始處 加入以下
echo 'console.log('.'ZZ'.');';
就會出現 Uncaught SyntaxError: Unexpected token < in JSON at position 0
是否因為 前一個 的呼叫,是AJAX 所以 這邊就無法 用ECHO方式來做
一定要用 return datax 回傳到前端 來查看?
謝謝!
這其實要看你ajax的date type是什麼。
依照你會出現這個錯誤訊息來看。你因該是指定json的格式。
這樣你要在php中送出的東西就一定得要是json格式的東西。如我上面說的{...}或[...]這一類的東西。
這不管怎麼樣。你送出console.log這樣的字串。當然會讓你的ajax中的json格式無法判別而出現錯誤。
所以你想要能出現訊息。就只能先放進去你要送出的json中。
然後再由前端去顯示。
無論如何,你目前犯的新手問題,就是前後端語言分不清。
想用php語言輸出前端javascript的命令。妄想其能跑javascript。
這算是新手常犯的問題。
謝謝您!