将值发送到Javascript函数以在元素中显示

Send values to Javascript function to display in element

本文关键字:元素 显示 函数 Javascript      更新时间:2024-02-18

我有这个

<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'];

我认为您需要从URL中删除散列(#)。如果你需要URL中的哈希标签,它必须在URL的末尾:

mydomain.com?id=1#tag

如果你像现在这样把散列放在查询字符串之前,你基本上是在告诉浏览器找到一个名为"?title=sample&url=sample.com"的元素/目标,它可能不喜欢。

对于您的最新问题:

我认为您最好使用链接来调用javascript函数,而不是像现在这样向URL添加querystring值。为了让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;
}

这意味着您可以在不刷新页面的情况下获得所需的值。

#告诉浏览器您正试图转到页面上的锚,这样它就不会向服务器发出另一个HTTP请求。

如果你想向服务器发出请求,你必须删除#符号并将URL添加到页面:

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

您的URL只包括一个片段标识符(URL的最后部分,以#字符开头)。

这允许您链接到页面的特定部分(由具有与片段标识符匹配的id属性的元素标识,或由具有匹配名称的锚点元素标识),并且完全由客户端处理-它不发送到服务器。

从URI中删除#字符,或将其放置在查询字符串之后

(还要注意,您的HTML无效,&表示字符引用的开始,如果您希望一个字符引用显示为数据,则应表示为&amp;

您需要从a href中删除#。请尝试$_SERVER["PHP_SELF"],它保存(此)脚本名称

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