2011-03-16 220 views
2

任何人都可以告诉我如何增加一个JavaScript函数内的php变量。我有一个JavaScript函数,每3秒调用一次函数,我需要增加php变量。在javascript函数中增加php变量

<? php $k =0?> 
function slide() 
{ 
//increment $k 
var j =<? php echo $k++; ?>//when I do this k is not incremented 
} 

任何人都可以告诉我我哪里出了问题吗?他们有任何其他的替代方案吗?

感谢,

思鲁提

+1

这绝对不会被JS是做什么的时候,因为工作的事情(客户端),PHP已经这样做了(服务器端)。你想完成什么? – Marcel 2011-03-16 19:56:50

+1

$ k ++表示在当前操作中使用$ k,然后增加它。所以在输出的JS中,你会看到j被设置为0.要将j设置为1,可以执行++ $ k,这会增加$ k,然后在当前操作中使用它。 – JAAulde 2011-03-16 19:57:49

回答

0

PHP是在服务器上运行,JavaScript是客户端。我想你想要的是一种使用Javascript而不是PHP增加JS值的方法。

用户永远不会看到PHP,所以没有增加发生。

你需要有一个JavaScript函数(时钟),跟踪你的3秒,然后增加你的javascript值的每个经过的时间段(如果我正确理解你的问题)var j

0

PHP是服务器端,JavaScript是客户方。你不能混合苹果和橘子,并期望香蕉。两件事情以不同的方式工作。如果您需要增加JS变量,请使用JS。

0

你需要在打印前增加变量:

<?php echo ++$k; ?> 
+1

也许,但我想你错过了这里的关键问题;-) – Carpetsmoker 2011-03-16 19:57:44

+0

我故意忽视了混合PHP与JS,并提供了一个解决方案的原始问题。 :) – smottt 2011-03-16 19:59:34

1

简答:你没有。

较长的答案:PHP在第一次加载页面时运行,仅运行。该代码在服务器上执行。 另一方面,在页面加载完成后,在客户端计算机的浏览器内执行Javascript。

也许有人可以提供一些建议,如果你告诉我们你到底想要完成什么。

0

您可以从PHP返回k并在Javascript中增加它。有你这样的代码:

<script> 
<?php $k=5; echo "var k=$k;\n";?> 
function slide() 
{ 
//increment k 
var j = k++; //k is incremented ONLY in javascript and j get's the k's value 
} 
</script> 
0
//You can do something like this: 
<?php 
$options= array('option1', 'option2','option3','option4'); 
?> 

/* in the same file you can convert an array php into an array javascript with json_encode() php function*/ 

<script> 

/*In this way you can read all the javascript array from php array*/ 

var options_javascript =<?php echo json_encode($options); ?>; 

/*And you can increase javascript variables. For example:*/ 

    for(var i =0; i<options_javascript.length; i++){ 
     options_javascript[i]; 
    } 

</script>