[請益] 關於變數的問題

作者: yaya517 (Abby)   2016-04-12 16:17:36
不好意思,剛開始學習寫網頁,遇到了一些問題
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
謝謝
作者: MOONRAKER (㊣牛鶴鰻毛人)   2016-04-12 16:28:00
session_start()要寫在最前面 寫中間不行$_SESSION要大寫 小寫沒有用還有這種一直輸出<script>的寫法是哪來的 拜託別這樣吧
作者: tkdmaf (皮皮快跑)   2016-04-12 16:55:00
既然js_function()必跑,何必echo?而通常,決不決定去跑什麼東西是由傳遞參數來決定。而不是達成什麼條件去echo js,沒達成就不echo於是乎…你把php的變數宣告放在js,對js一點意義也沒有。
作者: MOONRAKER (㊣牛鶴鰻毛人)   2016-04-12 18:18:00
是阿,前後端最好是不要混在一起寫而且php和html/js/css也不要混在一起初學還不能分檔案,至少設法養成分前後的習慣php通通寫在前面,其他寫在後面,頂多夾雜展開陣列或者要不要顯示的if { }
作者: RedMapleWing (闇夜 楓)   2016-04-13 11:17:00
其實你一開始的寫法問題是出在頁面生成的順序上當你建立一個php檔案(先不管有沒有包js),伺服器會先依你設定的方式產生頁面,js則是到頁面呈現後才有的東西,也就是說,在你頁面生成時,那個變數是沒有值的,你的值是在頁面生成後才指定的,php沒辦法即時取值即時運作等下…我看錯了,不要理我= =a
作者: xdraculax (首席怪叔叔)   2016-04-13 14:39:00
樓上說的沒錯啊 原code是先js後才取row所以js中row無值如果有照前面人回把php往前集中把js往後集中應該會有,還是沒有就更新一下你的code給大家看

Links booklink

Contact Us: admin [ a t ] ucptt.com