2010-12-04 68 views
0

您好我想通過onclick增加價值。 我的代碼是:PHP onclick問題?

<?php 
$r=0; 
function goto() 
{ 
$r++; 
} 
echo "<input type=button onclick=goto(); value=ClicktoIncrease >"; 
echo "r value is = $r"; 
?> 

我想通過點擊r值增加。

但它不起作用。

有人知道這個解決方案嗎?

+9

你需要使用Javascript完成。 PHP在服務器上運行。 – 2010-12-04 14:07:09

+0

要增加PHP中的值,您需要使用AJAX和Session。但我懷疑你需要這樣做。 – 2010-12-04 14:15:13

回答

3

你不能使用PHP來做到這一點。正如Pekka所言,PHP可以在服務器端運行,而你要做的是客戶端增加一個變量。 嘗試使用JavaScript來此:

<script type="text/javascript"> 
var r = 0; 
</script> 

<button onclick="r++">Increment</button> 
0

只有這樣,纔能有這些HTML和PHP的相互作用是通過一個頁面重新加載和存儲會話中的$ r的值或者曲奇餅。這種方式只要一個人點擊按鈕,頁面就會刷新,你的變量將增加1。以這個僞代碼爲例:

<?php 
session_start(); 
if(!isset($_SESSION['r'])) 
    { 
    $_SESSION['r'] = 0; 
    } 

if(isset($_REQUEST['rincrease'])) 
    { 
    $_SESSION['r'] += 1; 
    } 
?> 
<form> 
    <p>Current value of 'r' is <?=$_SESSION['r']?>. 
     Click submit to increase its value.</p> 
    <input type="hidden" name="rincrease"/> 
    <submit /> 
</form> 

我不在服務器之前,所以不能檢查這個,但它看起來不錯。它所做的是在頁面加載時檢查的表單中具有隱藏值。點擊提交按鈕將導致表單回傳給自己,並增加會話變量'r'的值。

如果您不需要捕獲,那麼更好的方法是使用JavaScript進行頁內頁面在服務器端的'r'的值。但即使你這樣做了,也可以在表單發佈時提交值,並且每次想要增加值時保存自己不得不重新提交頁面,還可以將用戶從大量頁面刷新中保存。

希望這是提供信息。