2011-05-14 74 views
4

我在这里读了很多线程,但我仍然无法获得从PHP传递给外部JS文件的变量,并想知道是否有人可以协助?在外部JS文件中传递一个PHP变量

在我的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(或跟踪帧。 JS)将不会加载在$company['website']指定的网址,多数民众赞成,但如果我将其更改为http://www.google.com其做工精细出于某种原因,$company['website']值没有被传递:(

+0

我将不胜感激你试过我的解决方案。我试过并用不同的'<?php $ company ['website'] =“http://www.example.com/”确认了我的示例; ?>'在PHP文件中。 – AndersTornkvist 2011-05-14 15:20:43

回答

2

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

添加echo,它应该工作

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使用它。确保清理输入。

8

,如果你希望你的外部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>'); 
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>'); 
+0

如果公司名称是“Joe的酒吧”,该怎么办? :-) – 2011-05-14 10:27:19

+0

@Denis我相信一个正确的URL应该用%27编码,而不是使用单引号(保留)。因此,在我的例子中,这并不重要。但是,在字符串中考虑换行符,引号等总是一个好习惯。 – AndersTornkvist 2011-05-14 15:13:38

2

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

+0

“JavaScript为您提供了ajax的功能”? AJAX *是* JavaScript。这就是J所代表的。 – 2012-09-01 00:24:13

2

为你的PHP文件中的代码:

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

为你的JavaScript(.js文件)的代码文件,以获得PHP文件值:如果指定了什么事时,

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