[请益] 关于变量的问题

楼主: 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