关于js调用php文件的变量传递问题
本帖最后由 biosway 于 2013-07-16 19:59 编辑test.html文件代码:
<html>
<body>
<script>
var c = 40;
</script>
<script type='text/javascript' src="test.php?c=c"></script>
</body>
</html>
test.php文件代码:
<?php
$id = $_GET['c'];
echo "alert(".$id.");";
echo "alert(\"cid = \"+".$id.");";
echo "alert(\"cid = ".$id."\");";
if(is_string($id)){
echo "alert(\"string\");";
}elseif(is_numeric($id)){
echo "alert(\"nummber\");";
}
?>
当浏览器中打开test.html文件的时候,php文件中的 $id 变量有的时候值是 40,有的时候值是 ”c“。
例如: echo "alert(".$id.");"; 弹出窗口的值是40;
echo "alert(\"cid = \"+".$id.");"; 弹出窗口的值也是 40;
echo "alert(\"cid = ".$id."\");"; 弹出窗口的值却是”c“。
还有就是使用 php 函数处理 $id 的时候,$id 的值也是 ”c”。
新手求教,这是什么情况?当php中处理 $id 的时候,怎样让它的值始终是 40??
本帖最后由 weishuo1999 于 2013-07-17 09:39 编辑
这里的原因是你在外面定义了c=40,在php文件里依然有效,那么你看看你的三条echo对应的输出分别是
alert(c);
alert("cid = "+c);
alert("cid = c");
再对应var c = 40第一个和第二个都能把c转成40, 第三个因为双引号的原因,直接alert字符串了。 回复 2# weishuo1999
谢谢,明白怎么回事了。
当初还天真的以为使用 script 标签的 src 属性调用 php 文件,传递参数的时候,会把 “c=c” 中的第二个 c 给替换成 40……。其实传递过去的只是“c=c”而已,php 文件中获得的 $_GET['c'] 变量值就是字符 “c”,利用 echo 语句返回来的 alert 语句中的 “c” 是调用 html 文件中 js 代码中的变量 c。
你都没用ajax,如何取值? 回复 4# bacy001
是我想的太简单了。
页:
[1]