作者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/cn.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