通过url传递javascript变量并解码为php变量

时间:2013-01-19 20:43:49

标签: php javascript json iframe

我发现这个小脚本允许用户在其网站上嵌入一个简单的JavaScript代码,以显示我网站上的iframe。这很好用,但是我试图通过他们嵌入的代码传递1个变量,并在我的最后将它设置为php变量。

我提前道歉我不太了解javascript!遗憾。

用户将嵌入的示例代码(窗口小部件类型代码)

<script language="JavaScript" src="http://www.mysite.com/public/iframe.js" rel='{"id":"1"}'></script>

这是在我的结尾生成iframe的代码

// Set path to the iframe file
var filePath = 'http://www.mysite.com/public/iframe.php';
// Setup the iframe target
var iframe='<iframe id="frame" name="widget" src ="#" width="100%" height="1"   
marginheight="0" marginwidth="0" frameborder="no" scrolling="no"></iframe>';
// Write the iframe to the page
document.write(iframe);

var myIframe = parent.document.getElementById("frame");
// Setup the width and height
myIframe.height = 350;
myIframe.width = 960;

myIframe.src = filePath;
// set the style of the iframe
myIframe.style.border = "1px solid #999";
myIframe.style.padding = "8px";

最终目标是rel属性id = 1并将其分配给php变量以供进一步使用。我做了很多环顾四周,似乎json_decode是答案,但似乎没有任何效果。

3 个答案:

答案 0 :(得分:0)

不要将id作为rel属性传递,只需将其直接添加到网址:

<script language="JavaScript" src="http://www.mysite.com/public/iframe.js?id=1"></script>

然后在你的php中访问它。

$id = (array_key_exists('id', $_GET)) ? $_GET['id'] : null;

这是一个简写if,用于检查以确保已将ID添加到网址中。它与:

相同
if(array_key_exists('id', $_GET) {
    $id = $_GET['id'];
} else {
    $id = null;
}

答案 1 :(得分:0)

我非常确定rel属性不是iframe标记中使用的内容。这通常用于rel =“nofollow”的标签中,以便搜索引擎不会关注该链接。

我没试过这个,但也许您可以在嵌入代码中的问号后发送参数。像这样:

<script language="JavaScript" src="http://www.mysite.com/public/iframe.js?id=1"></script>

然后您的PHP代码只在GET请求中查找。

<?php
echo $_REQUEST['id'];
?>

当然,这假设您的接收脚本是用PHP编写的。由于你显示.js扩展名,我不确定PHP代码是否正在执行?另外,我不是100%确定你可以在javascript嵌入中传递这样的参数。

答案 2 :(得分:0)

在JavaScript中添加此内容以查找脚本标记本身:

var allScripts = document.getElementsByTagName('script'),
currentScript = allScripts[allScripts.length - 1 ];

然后,您可以使用rel属性值或解码src属性。

顺便说一下,当以异步方式添加脚本元素时,这可能并不总是有效,在这种情况下,您必须检查src是否与您的文件名匹配,或者检查rel或许< / em>的