看板 PHP 關於我們 聯絡資訊
不好意思,剛開始學習寫網頁,遇到了一些問題 google&爬文了許久還是不明所以 請問 今天我在同一個php檔 code是這樣的 <?php 連接mysql,回傳了一個$row['???'],???有username、password等.. echo "<script> js_function(); </script>" ; ?> <scrpt> function js_function(){ <?php $x = $row['username'] $y = "abc" ?> alert( <?php echo $x; ?> ); alert( <?php echo $y; ?> ); } </script $x沒辦法印到,$y卻可以 請問為什麼呢?該如何修改~ 同一個php檔,不同的<?php ?> 變數空間不同嗎? 我的第一個row的php並沒有使用function,所以應該不是區域變數呀 謝謝 附上完整程式碼 http://pastie.org/private/pjxr3k3jx8s08fxktff4g#4,29-30,33,102,110 我發現我的$_session存不到$row抓出來的資料 (確定不是'password'、'nickname'的問題) 但是$_session['authenticated'] = true; 就可以echo出1 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.165.155.183 ※ 文章網址: https://www.ptt.cc/bbs/PHP/M.1460449059.A.3C3.html
MOONRAKER: session_start()要寫在最前面 寫中間不行04/12 16:28
MOONRAKER: $_SESSION要大寫 小寫沒有用04/12 16:35
MOONRAKER: 還有這種一直輸出<script>的寫法是哪來的 拜託別這樣吧04/12 16:36
第一個跟第二個知道了~~謝謝 請問第三個是什麼意思呢? 意思是我用很多js function跳提示窗不好嗎? 改成直接用php echo再refresh header比較好嗎 對不起我剛學不久很多地方不知道QQ 謝謝你告訴我這些~~ 然後我1.2改好了還是接不到$row@@ ※ 編輯: yaya517 (1.165.155.183), 04/12/2016 16:49:51
tkdmaf: 既然js_function()必跑,何必echo?04/12 16:55
tkdmaf: 而通常,決不決定去跑什麼東西是由傳遞參數來決定。04/12 16:56
tkdmaf: 而不是達成什麼條件去echo js,沒達成就不echo04/12 16:56
tkdmaf: 於是乎…你把php的變數宣告放在js,對js一點意義也沒有。04/12 16:58
對不起這邊我沒有寫清楚 我是要登入,確認帳號密碼都對的話 就echo呼叫請js fun做事 要做的事是js fun做訊息框、session跟跳轉 如果帳號密碼不對就echo另一個js fun做其他事 所以這樣應該不是必跑這個js? (如果登入失敗就不跑) 這樣我的$row需要傳遞嗎 還是我乾脆都不要用js了 改成echo文字 然後3 5秒後head跳轉 抱歉寫的很笨QQ 我不知道怎麼寫比較好 我會再好好改改 ※ 編輯: yaya517 (1.165.155.183), 04/12/2016 17:07:42 ※ 編輯: yaya517 (1.165.155.183), 04/12/2016 17:09:11 ※ 編輯: yaya517 (1.165.155.183), 04/12/2016 17:10:03 抱歉@@ 想了很久應該是我前後端觀念不好 所以才會在php後端又call很多js前端做事 我會再好好研究如何寫的更好的 謝謝兩位大大的回文~ ※ 編輯: yaya517 (1.165.155.183), 04/12/2016 17:54:07
MOONRAKER: 是阿,前後端最好是不要混在一起寫04/12 18:18
MOONRAKER: 而且php和html/js/css也不要混在一起04/12 18:19
MOONRAKER: 初學還不能分檔案,至少設法養成分前後的習慣04/12 18:19
MOONRAKER: php通通寫在前面,其他寫在後面,頂多夾雜展開陣列04/12 18:20
MOONRAKER: 或者要不要顯示的if { }04/12 18:21
好的!! 我剛剛重寫了一次 這次很乾淨的都是使用php 而且做的事幾乎都相同 抱歉第一次寫的時候沒有想到不要混在一起 只想到要用什麼就call什麼 而且不知道php儘量不要和其他語言混在一起 現在知道了 我會再多注意code習慣跟前後端 謝謝~~ ※ 編輯: yaya517 (1.165.155.183), 04/12/2016 18:28:56
RedMapleWing: 其實你一開始的寫法問題是出在頁面生成的順序上 04/13 11:17
RedMapleWing: 當你建立一個php檔案(先不管有沒有包js),伺服器會 04/13 11:18
RedMapleWing: 先依你設定的方式產生頁面,js則是到頁面呈現後才 04/13 11:18
RedMapleWing: 有的東西,也就是說,在你頁面生成時,那個變數是沒 04/13 11:19
RedMapleWing: 有值的,你的值是在頁面生成後才指定的,php沒辦法 04/13 11:19
RedMapleWing: 即時取值即時運作 04/13 11:19
RedMapleWing: 等下…我看錯了,不要理我= =a 04/13 11:20
xdraculax: 樓上說的沒錯啊 原code是先js後才取row所以js中row無 04/13 14:39
xdraculax: 值 04/13 14:39
xdraculax: 如果有照前面人回把php往前集中把js往後集中應該會有, 04/13 14:42
xdraculax: 還是沒有就更新一下你的code給大家看 04/13 14:42