php调用javascript变量,echo显示已经赋值,但不能存入数据库,如果在PHP中对变量赋值就可以,为什么?
<html><head><linkhref="./css/main.css"rel="stylesheet"type="text/css"media="screen"/>...
<html>
<head>
<link href="./css/main.css" rel="stylesheet" type="text/css" media="screen" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<script type="text/javascript">
var temp="77777"
</script>
<?php
$today = date("Ymd");
$temp="<script type=text/javascript>document.write(temp)</script>";
$con = mysql_connect(SAE_MYSQL_HOST_M.':'.SAE_MYSQL_PORT,SAE_MYSQL_USER,SAE_MYSQL_PASS);if(!$con){ die('could not connect:'.mysql_error()); }mysql_select_db(SAE_MYSQL_DB,$con);
mysql_query("set names UTF-8");
mysql_query("SET CHARACTER SET utf8");
mysql_query("SET COLLATION_CONNECTION='utf8_general_ci'");
$tem = strval(trim($temp));
echo $tem;
$query="INSERT INTO sh601390T (orderdate,stockprice) values ($today,$tem)";
mysql_query($query);
mysql_close($con);
?>
</body>
</html>
补充:$today 可以插入数据库,$tem不可以,如果不调用javascript,直接赋值给$stem,可以插入,说明php调用javascript变量有问题,但是echo $tem确已经赋值成功,为什么呢? 展开
<head>
<link href="./css/main.css" rel="stylesheet" type="text/css" media="screen" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<script type="text/javascript">
var temp="77777"
</script>
<?php
$today = date("Ymd");
$temp="<script type=text/javascript>document.write(temp)</script>";
$con = mysql_connect(SAE_MYSQL_HOST_M.':'.SAE_MYSQL_PORT,SAE_MYSQL_USER,SAE_MYSQL_PASS);if(!$con){ die('could not connect:'.mysql_error()); }mysql_select_db(SAE_MYSQL_DB,$con);
mysql_query("set names UTF-8");
mysql_query("SET CHARACTER SET utf8");
mysql_query("SET COLLATION_CONNECTION='utf8_general_ci'");
$tem = strval(trim($temp));
echo $tem;
$query="INSERT INTO sh601390T (orderdate,stockprice) values ($today,$tem)";
mysql_query($query);
mysql_close($con);
?>
</body>
</html>
补充:$today 可以插入数据库,$tem不可以,如果不调用javascript,直接赋值给$stem,可以插入,说明php调用javascript变量有问题,但是echo $tem确已经赋值成功,为什么呢? 展开
2个回答
展开全部
你别搞错php和javascript的执行顺序了. php是脚本语言, 先于javascript, 所以你输出的$tem不是77777, 而是 "<script type=text/javascript>document.write(temp)</script>
", 只是在页面上看, 是显示77777,
而插入数据库事变, 是因为stockprice这个变量不是varchar之类的变量, 不能输入字符串, 所以插入失败..
", 只是在页面上看, 是显示77777,
而插入数据库事变, 是因为stockprice这个变量不是varchar之类的变量, 不能输入字符串, 所以插入失败..
更多追问追答
追问
$tem = strval(trim($temp));
echo $tem;
这个语句显示已经赋值给$tem成功,我插入的是$tem,数据库里面设置的是varchar变量,我也试着改成text类型,如果在php内不调用javascript变量能插入,调用则不可以。
追答
不是很懂你的表达.
看你这段的意思, 大概是要存入一个支付日期和一个支付价格给数据库, 如果是要从页面传值到php程序的话, 应该用 ajax来传递, 而不是用你这样的逻辑来做..
用ajax, php程序通过$_POST 或者$_GET来过去相关的变量..
去查下相关的ajax知识吧..
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |