2017-03-04 40 views
1

我想調用一個PHP函數,在同一頁面上點擊超鏈接(帶有<a>標籤的文本)時傳遞參數,即href='#' onclick='loadpic($id)如何通過超文本鏈接調用php函數

其中$id是要傳遞給PHP函數的變量。

+0

遠程過程調用(RPC)? https://en.wikipedia.org/wiki/Remote_procedure_call – xFighter

回答

0

你可以很容易地通過ajax來做到這一點。在JavaScript中創建一個loadpic函數,然後通過ajax將$ id傳遞給php文件,並在獲得結果時執行某些操作。

你的JavaScript文件應該看起來像這 -
(請確保您插入您的索引文件的鏈接的jQuery)

function loadpic(id_param){ 
    $.post("filename.php", 
    { 
      id: id_param 
    }, 
    function(data){ 
     alert("Data received:" + data); 
    }); 
}; 

的功能(數據)的數據參數將是值你已經在php文件中迴應。

+0

注意,'jquery'標籤不會出現在問題中。 – guest271314

+0

在jQuery中實現一些東西肯定比js容易。 user2599097不知道答案,並期望它在js中,這就是爲什麼沒有這樣的標籤(我猜) –

+0

_「在jQuery中實現某些東西肯定比js更容易。」_?這是如何確定的? – guest271314

-1

您仍然必須讓javascript處理異常,因爲php沒有onclick。

onClick=\"loadpic("'.$id.'");"\ 
//this will only send a php variable javascript will still have to loadpic(); 
0

如果你想使用onclick()方法在你的HTML元素,那麼你必須寫你的方法是JavaScript使一個AJAX調用PHP。這是一個簡單的方法來做到這一點使用PHP和JavaScript。爲此,請參閱javascript和ajax與PHP。
但是,如果你不想使用JavaScript,那麼這裏是一個簡單的方法和非常簡單的代碼。

<?php 
if(isset($_GET['myMethod'])){ 
    myMethod($_GET['id']); 
} 
function myMethod($id){ 
    echo $id."<br>"; 
} 
?> 

<?php 
$myId = 4; 
?> 
<a href="index.php?id=<?php echo $myId ?>&myMethod" >MyLink</a> 

注:將此代碼複製並粘貼到一個名爲index.php因爲通知的超鏈接標籤及其屬性href="index.php"
另外請注意,您不能從HTML標記中使用js如onclick()直接調用php方法。你應該使用AJAX或其他東西。但使用上述演示代碼,您可以輕鬆地使用超鏈接標記調用myMethod()這是一種PHP方法。
你的情況:

<?php 
if(isset($_GET['call_loadpic'])){ 
    loadpic($_GET['id']); 
} 
function loadpic($id){ 
    echo "My loadpic method has been called! and the id is".$id."<br />"; 
} 
?> 
<!-- your other codes --> 

<?php 
$id = 4; 
?> 
<a href="this-same-file-name.php?id=<?php echo $id ?>&call_loadpic" >MyLink</a> 

這是因爲你的PHP函數是在同一個頁面,你要調用使用相同的文件和超鏈接在同一個文件的功能。 (根據您的問題