在外部JS文件中传递PHP变量

时间:2011-05-14 09:11:58

标签: php javascript variables iframe

我在这里阅读了很多帖子,但我仍然无法获得从PHP传递到外部JS文件的变量,并想知道是否有人可以提供帮助?

在我的PHP文件中,我有以下内容;

<script type="text/javascript">
var pass_this_variable = <?php $company['website']; ?>;
</script>

<script type="text/javascript" src="/js/track.js"></script>

在JS文件中,我有以下内容;

document.write('<IFRAME SRC="$company['website']" WIDTH="300" HEIGHT="400"></IFRAME>');

我想要实现的是IFRAME打开并填充$ company ['website']中包含的内容。我知道我可以直接在PHP文件中使用IFRAME,但这不是我的功课我的任务。当我在PHP文件中直接使用IFRAME时,它工作正常,如果我在JS文件中指定静态URL,例如http://www.google.com,这也可以正常工作。

有人可以帮忙吗?感谢


编辑:

感谢目前为止的答案,但是我仍然无法让它发挥作用:(

我在track.php(或track.js)中拥有的框架不会加载$company['website']中指定的网址,但如果我将其更改为http://www.google.com,则其工作正常。由于某种原因,$company['website']值未被传递:(

6 个答案:

答案 0 :(得分:9)

如果你想让你的外部javascript动态,你可以把它变成一个php文件并给出正确的标题,例如:

<script type="text/javascript" src="/js/track.php"></script>

track.php

<?php
// javascript generator
Header("content-type: application/x-javascript");
?>
document.write('<IFRAME SRC="<?php echo $company['website'] ?>" WIDTH="300" HEIGHT="400"></IFRAME>');

答案 1 :(得分:6)

PHP文件(不要忘记回音和引用):

<script type="text/javascript">
var pass_this_variable = '<?php echo $company['website']; ?>';
</script>

<script type="text/javascript" src="/js/track.js"></script>

JS文件(改为使用pass_this_variable):

document.write('<IFRAME SRC="'+pass_this_variable+'" WIDTH="300" HEIGHT="400"></IFRAME>');

答案 2 :(得分:2)

你应该修改这一行: var pass_this_variable = <?php echo $company['website']; ?>;

添加echo,它应该可以正常工作

答案 3 :(得分:2)

在JavaScript源代码中调用PHP文件。你可以在这里找到教程:

http://www.javascriptkit.com/javatutors/externalphp.shtml

所以你的代码将是这样的:

<script type="text/javascript" src="track.php?company=<?php echo $company['website']; ?>"></script>

在PHP文件中,您可以通过$_GET变量获取值,并在 iframe 中使用它。确保清理输入。

答案 4 :(得分:2)

JavaScript为您提供了ajax的功能,用于读取PHP或文本文件。为什么不在解析变量的情况下在PHP文件中创建HTML iframe,然后收回响应并将其“扔”到div中。

答案 5 :(得分:2)

PHP文件的代码:

$cmp = $company['website'];
echo '<input type="hidden" id="cmp1" name="cmp1" value="' . $cmp . '" />';

用于获取PHP文件值的JavaScript(.js)文件的代码:

var company = document.getElementById('cmp').value;