2011-03-16 211 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>