2011-03-01 109 views
1

我有這樣的鏈接:<a href="javascript:window.print();">Print</a>。我試圖在單擊時增加一個PHP變量。我可以通過提交表單來在技術上做到這一點,但我確信有一種更簡單的方法。有任何想法嗎?在jQuery onClick,增加一個PHP變量?

+0

這PHP變量是在哪裏(相對於帶有ANCHOR的頁面)? – 2011-03-01 23:39:07

+2

PHP變量?就像只在PHP執行期間存在的東西一樣(除了session/cookie)。您確定您不是指可通過PHP訪問的數據庫變量嗎? – 2011-03-01 23:43:59

+0

好像@Brad Christie和@ g.d.d.c都提到過,使用數據庫和AJAX。 JQuery對此很有用http://api.jquery.com/jQuery.post/ – 2011-03-01 23:55:09

回答

6

JavaScript是客戶端。 PHP是服務器端。如果您想通過JavaScript事件影響PHP變量,則必須發出某種AJAX調用。

1

你需要使用某種數據庫來保存這樣的變量。然後,您可以向一個小的服務器端文件發出一個AJAX調用,該文件將增加該數據庫中的值。

在你的HTML頁面:

<script type="text/javascript"> 
    $(document).ready(function() { 
     $('#print').click(function() { 
      $.getJSON('http://somewhere.com/increment.php', null, function(data) { 
       console.log('remote increment script returned: ' + data); 
      }); 
      window.print(); 
     }); 
    }); 
</script> 
<a href="javascript: void 0;" id="print">Print</a> 

然後,在服務器端/increment.php(我假定MySQL,但是你可以用別的東西像Redis的這一以及):

// database connection goes here 
$result = mysql_query("UPDATE stats SET stat_value = stat_value + 1 WHERE stat_key = 'prints'", $some_database_connection); 
mysql_close($some_database_connection); 
die($result ? 'true' : 'false');