2013-06-25 48 views
2

我有一個PHP函數,我想將其集成到我的(現有)網頁中。此外,我希望在用戶點擊頁面上的鏈接時執行此操作。該函數需要接受鏈接的文本作爲輸入參數。通過HTML鏈接調用PHP函數(無形式)

我研究過的將數據發送到PHP腳本的一切似乎都涉及使用表單來獲取用戶輸入。該頁面不需要用戶輸入,只需將鏈接文本發送到該函數並執行該功能即可。

所以我想這個問題是兩部分。首先,如何在鏈接點擊時執行PHP腳本。其次,如何在不使用表單的情況下將頁面信息傳遞給此函數。如有必要,我願意使用其他技術,例如AJAX或JavaScript。

編輯::具體是我想要做的。我有一個代表某些源代碼文檔的HTML輸出。在這個輸出上是一系列鏈接(指源代碼中的代碼結構),被點擊後會調用一些安裝在Web服務器上的python函數(這導致我認爲它需要通過PHP調用)。但是,python函數需要鏈接上的名稱作爲輸入參數。

是否有某種交互可以通過讓JavaScript收集輸入並調用PHP函數來實現?

對不起,模糊不清,我是INCREDIBLY新的web開發。如果有什麼不清楚的,請告訴我。

+0

您的PHP腳本可以在不使用表單的情況下從URL讀取信息;你可以通過'$ _GET'來訪問它,如果你傳遞一個&符號分隔的field = value項目列表,或者你可以在$ _SERVER ['QUERY_STRING'] – andrewsi

+0

中得到整個事物,你可以使用GET as andrewsi建議或使用AJAX並通過POST傳遞信息。 – Naryl

+0

@andrewsi你應該寫這個答案,因爲它是正確的 –

回答

1

您將需要使用AJAX在不離開頁面的情況下完成此操作。下面是使用jQuery和AJAX(假定您已經包括jQuery庫)爲例:

第一個文件:

<script language="javascript"> 

$(function(){ 
    $('#mylink').click(function(){ 
     $.get('/ajax/someurl', {linkText: $(this).text()}, function(resp){ 
      // handle response here 
     }, 'json'); 
    }); 

}); 

</script> 

<a href="#" id="mylink">This text will be passed along</a> 

PHP文件:

$text = $_REQUEST['linkText']; 
// do something with $text here 
-1

PHP是一種服務器端語言,即它不在Web瀏覽器中運行。

如果您希望瀏覽器中的某個功能點擊鏈接進行操作,您可能正在談論如何使用一些Javascript。

您可以使用Javascript查找鏈接節點中包含的文本值並將其發送到服務器,然後讓您的PHP腳本處理它。

0

這裏有你想要做一個過於簡單的例子..

您的鏈接:

<a href="somefile.php?action=Some+Action">Some Action</a> 

你的PHP文件:

<?php 

if (isset($_GET['action'])) 
{ 
    // make sure to validate your input here! 
    some_function($_GET['action']); 
} 
1

如果您熟悉的jQuery ,如果你不想讓網站重定向但執行你的功能,你可以做以下事情:

你的html標題:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 

鏈接:

<a href="#" onclick="$.get('ajax.php');">Execute function</a> 
在ajax.php你把你的功能

被執行。

+0

爲什麼使用內聯事件綁定,如果你有jQuery? '$(function(){$('a.my-link')。bind('click',function(){$ .get('ajax.php');});});' – andy

+0

因爲它更簡單爲新手理解和工作是一樣的 – DanFromGermany

+0

它確實,但它通常是不好的做法 – andy

1

也許是這樣的:

<a href="#" onclick="return sendText(this);"></a> 
.... 
<script> 
function sendText(e) 
{ 
$.ajax({ 
     url: '/your/url/', 
     data: {text: $(e).html()}, 
     type: 'POST' 
     }); 
} 
</script> 
+0

雖然,技術上這段代碼是正確的,javascript並不意味着'jQuery' :) – tftd

+0

的cource,但是對於ajax來說,使用jquery好得多,然後自制的柺杖 – drull

1

您可以使用查詢字符串這一點。例如,如果您鏈​​接到這個網頁:

example.php?text=hello 

(而不是把一個直接的聯繫,你也可以發送一個AJAX GET請求到URL)

內使用example.php,即可獲得價值像這樣的 '你好':

<?php 
$text = $_GET['hello']; 

然後調用你的函數:

myfunction($text); 

請確保您薩尼在將其傳遞給函數之前對其進行確認和驗證。根據你在這個功能裏面做什麼,結果可能是致命的!

此鏈接可能幫助:

3

你需要具有由一個onclick事件,然後發送一個AJAX請求,並返回觸發的JS功能假(所以它不會被重定向到瀏覽器中的新頁面)。你可以做以下jQuery中:

的jQuery:

<script type="text/javascript" src="jquery.min.js"></script> 
<script type="text/javascript"> 
function doSomething() { 
    $.get("myfile.php"); 
    return false; 
} 
</script> 

而在你的網頁正文:

<a href="#" onclick="doSomething();">Click Me!</a> 

myfile.php

你可以添加任何你想要執行的功能itor點擊鏈接。例如:

<?php 
echo "Hey, this is some text!"; 
?> 

這是一個基本的例子。我希望這有幫助。