gpt4 book ai didi

javascript - php 值在 javascript 中不会改变

转载 作者:行者123 更新时间:2023-12-03 12:28:05 24 4
gpt4 key购买 nike

我有一个 JavaScript 计数器。如果计数器 = 0,则价格发生变化。我想评估 php 变量的 javascript 价格 var 值。但是 php 价格上涨一次就够了。

<?php global $p; $p = 1000; ?>

var pr = <?php echo $p;?>;
function downCounter(tim)
{
var t;
counter=tim-1;
var elem=document.getElementById('counter');
var price= document.getElementById('price');
var days = parseInt(counter / 86400),
hours = parseInt(counter / 3600) % 24,
minutes = parseInt(counter / 60) % 60,
seconds = counter % 60,
hours = (hours < 10) ? '0' + hours : hours;
minutes = (minutes < 10) ? '0' + minutes : minutes;
seconds = (seconds < 10) ? '0' + seconds : seconds;
elem.innerHTML=(days ? days + dayname : '') + hours + ':' + minutes + ':' + seconds;
price.innerHTML=(pr);

if (counter==0)
{
downCounter('43200');
<?php $p += 500; ?> <-- works once
pr = <?php echo $p; ?>;
} else {
clearTimeout(t);
t=setTimeout("downCounter('+"+(tim-1)+"')", 1000);
}
return false;
}
downCounter('43200');
</script>

感谢大家,但是我如何保护我的 pr 变量不被源代码更改,然后通过 ajax 发送?

最佳答案

这里的问题源于您对上下文的混淆:PHP 在服务器上运行并输出 HTML,然后发送到客户端; Javascript运行在客户端,不与服务器通信(除非使用AJAX或其他方法)。

PHP 在服务器上执行并发送到客户端,因此客户端得到如下内容:

var pr = 1000; // inserted with the PHP echo statement
function downCounter(tim)
{
var t;
counter=tim-1;
var elem=document.getElementById('counter');
var price= document.getElementById('price');
var days = parseInt(counter / 86400),
hours = parseInt(counter / 3600) % 24,
minutes = parseInt(counter / 60) % 60,
seconds = counter % 60,
hours = (hours < 10) ? '0' + hours : hours;
minutes = (minutes < 10) ? '0' + minutes : minutes;
seconds = (seconds < 10) ? '0' + seconds : seconds;
elem.innerHTML=(days ? days + dayname : '') + hours + ':' + minutes + ':' + seconds;
price.innerHTML=(pr);

if (counter==0)
{
downCounter('43200');
pr = 1500; // $p += 500 on previous line of PHP code; echoed here
} else
{
clearTimeout(t);
t=setTimeout("downCounter('+"+(tim-1)+"')", 1000);
}
return false;
}
downCounter('43200');
</script>

这就是在客户端上执行的内容 - 看看为什么它没有按照您想要的方式工作? JavaScript 使用静态值:1000 和 1500。

如上所述,如果您希望将这些值返回到服务器,则需要编写一些 Javascript 代码来实际将值发送回。

关于javascript - php 值在 javascript 中不会改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24084910/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com