我需要将该值临时存储在PHP变量中,因为该值应该与注释一起发送。用户在不输入评论的情况下无法发送评级,这就是我决定这样做的原因。
为什么当PHP计算值时,我的变量会返回零值?
我有这个代码:
<a href='#' onclick='rate(1); return false;' class='one-star'>1</a>
<script type="text/javascript">
function rate (amnt){
<?php
$currentRating = amnt;
$ratingImageWidth = $currentRating * 25;
echo "alert($ratingImageWidth)";
?>
}
</script>
注:
$currentRating
变量不为null,我尝试将其包含在alert函数中,它返回了正确的值。$currentRating
变量转换为int:
settype($currentRating, "integer");
(int)$currentRating;
什么都没发生,它仍然返回零。有人知道怎么解决这个问题吗?非常感谢那些愿意提供帮助的人。
PHP在服务器上运行,因此您的JavaScript实际上看起来像:
function rate(amnt) {
alert(0)
令人惊讶的是,考虑到最后缺失的}
,它竟然有效。。。
重点是,你不能用这种方式混合PHP和JS。你为什么不直接做alert(amnt*25)
呢?
为什么要使用PHP?只需在javascript:中进行计算
<script type="text/javascript">
function rate (amnt){
var ratingImageWidth = amnt * 25;
alert(ratingImageWidth);
}
</script>
PHP在浏览器加载页面之前在服务器上运行。页面加载后,Javascript将在客户端的浏览器中运行。两人不能互相打电话,因为他们在不同的地方跑步。
Php代码在发送给用户之前运行。尝试查看已处理页面的源代码,以了解其工作原理。
$ php << EOF
<?php
echo amnt * 25;
EOF
PHP Notice: Use of undefined constant amnt - assumed 'amnt' in - on line 2
Notice: Use of undefined constant amnt - assumed 'amnt' in - on line 2
0
你不能像这样用JavaScript运行PHP改为使用XHR,或坚持使用JavaScript