2016-12-23 57 views
-1

我想知道在PHP中單擊圖像時是否有執行函數的方法?我知道它可以在Javascript中完成。例如,單擊foo.png時,將運行以下功能。單擊img時運行PHP函數

function example() { 
    header('Location: example.php'); 
} 
+8

沒有。 PHP是一種服務器端語言。就它而言,瀏覽器並不存在。 – iblamefish

+1

您可能想要顯示所有相關代碼以獲得完整答案。 – TrojanByAccident

+2

只有當你的圖像包含在'

'中時,你可以調用Submit,但我不認爲這是你想要的基於你顯示的函數作爲例子使圖像成爲一個超鏈接......或者解釋一下你想完成更好的http://stackoverflow.com/help/how-to-ask – chop62

回答

3

PHP在服務器上運行,在創建頁面之前和之後使用,然後將其提交給瀏覽器進行渲染。

頁面呈現並顯示給用戶後,所有PHP處理都停止並且頁面已提供給客戶端。服務器代碼不再運行 - 時間已過。

一旦進入瀏覽器,只有客戶端代碼可以運行(javascript)。特別是在與用戶進行交互時,您可以使用客戶端代碼。然而,您也可以使用客戶端代碼(javascript/jQuery)與用戶進行交互(檢測點擊或鼠標移動),然後使用AJAX將數據發送到另一個服務器端PHP文件。 PHP文件在接收數據時會「喚醒」,並且可以執行一些額外的服務器端操作 - 例如使用接收到的數據執行數據庫查找,然後獲取新的數據庫數據並創建一些HTML代碼並將其發送回頁面。這個新的HTML代碼可以在AJAX代碼塊的成功(或.done())功能中注入到頁面中,並且新數據可以出現在頁面上,而無需刷新或從當前頁面導航。

但實際檢測到用戶點擊,它是JavaScript/jQuery。

請注意,PHP也可以將JavaScript與HTML一起注入 - 但是一旦代碼已經提供給瀏覽器進行顯示,它只是可以與用戶交互的JavaScript,而不是PHP。

使用Javascript/jQuery的,你可以做你想做的是這樣的(代碼是正確的,但該示例將無法正常工作 - 所以不會瀏覽到谷歌網頁):

$('#myImg').click(function(){ 
 
    window.location.href = 'http://google.com'; 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<p>Click below for Google</p> 
 
<img id="myImg" src="http://placeimg.com/50/50/animals" />