2012-07-26 69 views
0

顯示我有這發送值的Javascript功能元素

<a href='#?title=sample&url=sample.com'></a> 

在同一頁上,我把

$title = $_GET['title']; 
$url = $_GET['url']; 

,但它不傳遞值。 代碼有什麼問題? 請幫助!

注: 我想不重新加載,這就是爲什麼我把#的頁面,因爲在後面的部分,我會調用JavaScript函數的onclick

這裏的函數調用的onclick

<script language="JavaScript"> 
function overlay() { 
el = document.getElementById("overlay"); 
el.style.visibility = (el.style.visibility == "visible") ? "hidden" : "visible"; 
} 
</script> 

其中元素「覆蓋」必須包含值

$title = $_GET['title']; 
$url = $_GET['url']; 
+0

象牙你好,請看到我的更新答案。 – TheCarver 2012-07-26 06:19:04

回答

3

我認爲你需要從刪除哈希(#)你URL。如果你需要的散列標籤在你的URL,它必須在URL的末尾:

mydomain.com?id=1#tag 

如果將哈希的查詢字符串之前像你這樣,你基本上是告訴瀏覽器以查找元素/目標稱爲「?title = sample & url = sample.com」,它可能不會喜歡。

爲您更新的問題:

我覺得你最好不要使用鏈接打電話給你的JavaScript函數,而不是給你URL像你有添加查詢字符串值。爲了使PHP能夠獲得這些值,頁面必須重新加載/發送請求到服務器。如果你不想重新加載頁面,我建議你改變你的鏈接到本:

<a onclick="overlay('This is the title','www.domain.com')"> 

,然後有一個函數:

function overlay(theTitle, theURL) { 
    el = document.getElementById("overlay"); 
    el.style.visibility = (el.style.visibility == "visible") ? "hidden" : "visible"; 
    el.innerHTML = theTitle+'<br>'+theURL; 
} 

這意味着你可以得到你想要的,而無需刷新值這一頁。

+0

是啊你的權利與你的答案更新的問題@PaparazzoKid,問題爲什麼我沒有使用,是因爲我不知道如何將該JavaScript從JavaScript傳回到HTML。我的繼承人代碼時javascript函數是呼叫 2012-07-26 06:25:08

+0

@ ivory-santos:我不確定我是否明白這一點。您是否想要在疊加HTML中顯示「標題」和「網址」? – TheCarver 2012-07-26 06:29:29

+0

函數首先調用div,使其在屏幕上可見。但我的問題是...我怎麼能把標題和URL的價值在div裏面。 – 2012-07-26 06:32:47

1

#告訴瀏覽器您正在嘗試去ancho在頁面上,所以它不會向服務器發出另一個HTTP請求。

如果你想請求到服務器,你必須刪除#符號和URL添加到頁面:

<a href="mypage.php?title=sample&url=sample.com"> 
1

您的網址只包含片段標識符(以#字符開頭的URL的最後一部分)。

這允許您鏈接到頁面的特定部分(由id屬性匹配片段標識符的元素或具有匹配名稱的錨元素標識),並且完全由客戶端處理 - 它不是沒有發送到服務器。

從URI中刪除#字符或將其置於查詢字符串。

(另請注意,您的HTML是無效的,&表示字符引用的開始,如果你想一個顯示爲數據應該表示爲&amp;

0

你需要從A HREF刪除# 。 嘗試,而不是$_SERVER["PHP_SELF"]持有(本)腳本名稱

print('<a href='.$_SERVER["PHP_SELF"].'?title=SAMPLE&url=SAMPLE.COM'>Link</a>') 
+0

頁面重新加載@GeoPhoenix,我不希望頁面重新加載,因爲我的onclick函數將消失 – 2012-07-26 06:37:44