作者yaya517 (Abby)
看板PHP
標題[請益] 關於變數的問題
時間Tue Apr 12 16:17:36 2016
不好意思,剛開始學習寫網頁,遇到了一些問題
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://webptt.com/m.aspx?n=bbs/PHP/M.1460449059.A.3C3.html
1F:→ MOONRAKER: session_start()要寫在最前面 寫中間不行04/12 16:28
2F:→ MOONRAKER: $_SESSION要大寫 小寫沒有用04/12 16:35
3F:→ 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
4F:→ tkdmaf: 既然js_function()必跑,何必echo?04/12 16:55
5F:→ tkdmaf: 而通常,決不決定去跑什麼東西是由傳遞參數來決定。04/12 16:56
6F:→ tkdmaf: 而不是達成什麼條件去echo js,沒達成就不echo04/12 16:56
7F:→ 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
8F:→ MOONRAKER: 是阿,前後端最好是不要混在一起寫04/12 18:18
9F:→ MOONRAKER: 而且php和html/js/css也不要混在一起04/12 18:19
10F:→ MOONRAKER: 初學還不能分檔案,至少設法養成分前後的習慣04/12 18:19
11F:→ MOONRAKER: php通通寫在前面,其他寫在後面,頂多夾雜展開陣列04/12 18:20
12F:→ MOONRAKER: 或者要不要顯示的if { }04/12 18:21
好的!!
我剛剛重寫了一次
這次很乾淨的都是使用php
而且做的事幾乎都相同
抱歉第一次寫的時候沒有想到不要混在一起
只想到要用什麼就call什麼
而且不知道php儘量不要和其他語言混在一起
現在知道了 我會再多注意code習慣跟前後端
謝謝~~
※ 編輯: yaya517 (1.165.155.183), 04/12/2016 18:28:56
13F:→ RedMapleWing: 其實你一開始的寫法問題是出在頁面生成的順序上 04/13 11:17
14F:→ RedMapleWing: 當你建立一個php檔案(先不管有沒有包js),伺服器會 04/13 11:18
15F:→ RedMapleWing: 先依你設定的方式產生頁面,js則是到頁面呈現後才 04/13 11:18
16F:→ RedMapleWing: 有的東西,也就是說,在你頁面生成時,那個變數是沒 04/13 11:19
17F:→ RedMapleWing: 有值的,你的值是在頁面生成後才指定的,php沒辦法 04/13 11:19
18F:→ RedMapleWing: 即時取值即時運作 04/13 11:19
19F:→ RedMapleWing: 等下…我看錯了,不要理我= =a 04/13 11:20
20F:→ xdraculax: 樓上說的沒錯啊 原code是先js後才取row所以js中row無 04/13 14:39
21F:→ xdraculax: 值 04/13 14:39
22F:→ xdraculax: 如果有照前面人回把php往前集中把js往後集中應該會有, 04/13 14:42
23F:→ xdraculax: 還是沒有就更新一下你的code給大家看 04/13 14:42