2012-07-26 65 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