2011-05-14 2 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을 직접 사용할 수는 있지만 숙제를 위해 할당 된 것은 아닙니다. IFRAME을 PHP 파일에서 직접 사용하면 정상적으로 작동하며 http://www.google.com과 같은 JS 파일에 정적 URL을 지정하면 정상적으로 작동합니다.

누구든지 도와 줄 수 있습니까? 감사합니다


편집 : 답변

덕분에 지금까지, 그러나 나는 아직도 :(

내가 track.php (또는 트랙에있는 프레임 작업을 얻을 수 없습니다입니다. JS) 내가 http://www.google.com에 그 작업 벌금을 변경하는 경우 $company['website']에 지정된 URL 이잖아로드, 아직되지 않습니다 $company['website'] 값이 전달되지 않는 몇 가지 이유 :(

+0

내가 감사하겠습니다을 내 해결책을 시도 했어. 나는 다른 예제를 사용하여 나의 예제를 시도하고 확인했다. 'PHP 파일에서? – AndersTornkvist

답변

2

를 들어 당신이 줄을 수정해야합니다. var pass_this_variable = <?php echo $company['website']; ?>;

echo을 추가하고

2

전화 자바 스크립트 소스 내부의 PHP 파일을 작동합니다. 여기에서 자습서를 찾을 수 있습니다 :

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

그래서 코드는 다음과 같이 될 것입니다 : PHP 파일에서

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

당신이 $_GET 변수를 통해 값을 취득 해, iframe을에서 사용할 수 있습니다. 입력을 살균하십시오. 당신이 당신의 외부 자바 스크립트 동적하려면

8

당신이 그것을 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 파일을 돈 ' t)은 에코 및 인용 잊지 :

<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 's bar"인 경우 어떻게됩니까? :-) –

+0

@Denis 나는 작은 따옴표 (예약)를 사용하는 대신 적절한 URL을 % 27로 인코딩해야한다고 생각합니다. 그러므로 제 예제에서는 중요하지 않습니다. 그러나 문자열에서 줄 바꿈, 따옴표 등을 생각하는 것은 항상 좋은 습관입니다. – AndersTornkvist

2

JavaScript는 PHP 또는 텍스트 파일을 읽을 목적으로 아약스의 기능을 제공합니다. 변수를 파싱 한 PHP 파일 안에 HTML iframe을 만든 다음 응답을 가져 와서 div 안에 던지십시오.

+0

"JavaScript는 당신에게 아약스의 기능을 제공합니다"? AJAX *는 * JavaScript입니다. 그것이 J가 의미하는 것입니다. –

2

당신의 PHP 파일의 코드 :

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

자바 스크립트 (의 .js)의 코드 PHP 파일 값을 얻을 파일 : 당신이 때 무슨 일이 있었는지 지정한 경우

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