我试图在javascript函数中增加一个php变量:
function border(){
<?php $var_drafts_display=0; ?>;
for(var i=0; i<5; i++)
{
<?php ++$var_drafts_display ; ?>;
}
var final_num='<?php echo $var_drafts_display; ?>';
alert(final_num);
}
但是php变量只增加一次,即alert(final_num)
显示1.我知道php是服务器端程序而javascript是客户端程序,这是php变量为什么没有增加的主要问题。此外,我无法弄清楚为什么它只会增加一次。
答案 0 :(得分:6)
您正在尝试将服务器端代码(PHP)与JavaScript代码混合使用:
function border(){
<?php $var_drafts_display=0; ?>;
for(var i=0; i<5; i++)
{
<?php ++$var_drafts_display ; ?>;
}
var final_num='<?php echo $var_drafts_display; ?>';
alert(final_num);
}
最终会变成这样:
function border(){
;
for(var i=0; i<5; i++)
{
;
}
var final_num='1';
alert(final_num);
}
只会提醒1。
你想做的事情如下:
function border(){
var draftsToDisplay = <?php echo $var_drafts_display=0; ?>;
for(var i=0; i<5; i++)
{
draftsToDisplay++;
}
alert(draftsToDisplay);
}
关于客户端/服务器代码与一些示例here之间的差异有一个很好的指南。
答案 1 :(得分:2)
这种行为是不可能的。你需要清楚地了解php和js是如何工作的。 PHP只是在服务器端编译网页html代码,然后将html代码传递给客户端。客户端的Web浏览器解析该代码,然后执行所有脚本。所以你的js机器会看到下一个代码:
function border(){
for(var i=0; i<5; i++)
{
}
var final_num='1';
alert(final_num);
}
答案 2 :(得分:0)
您是否在单个警报框中显示所有迭代,然后您可以执行此操作:
function border(){
<?php $var_drafts_display=0; ?>;
var final_num = 0;
for(var i=0; i<5; i++){
<?php $var_drafts_display++ ; ?>;
final_num='<?php echo $var_drafts_display; ?>';
alert(final_num);
}
}