-1

file1.php는 WordPress 게시물 추천 이미지의 URL을 표시합니다. 이 URL을 file2.js 파일의 img 태그에 포함하려고합니다.자바 스크립트 파일에 PHP 스크립트 출력을 포함

file1.php

<?php $url = wp_get_attachment_url(get_post_thumbnail_id($post->ID), 'thumbnail'); ?> 
<?php echo $url ?> 

file2.js

var mjvfiurl; 
$.get("/wp-content/plugins/mjv_sample_plugin/file1.php", function(mjvdata) { 
    mjvfiurl=mjvdata; 
}); 

var fapDom = '<div id="fap-wrapper"><img src="'+mjvfiurl+'" alt="" /></div>'; 

$('body').append(fapDom); 

하지만 그 작동하지 않습니다. 아래 렌더링 소스 코드 :

<img src="undefined" alt=""> 

콘솔 오류 :

http://padals.com/baahubali-beginning/undefined 404 (Not Found) 

것만 스크립트 이미지 태그 PHP의 출력을 포함한다. 정확한 답변을 주시면 감사하겠습니다. 당신을 가정

+2

가능한 복제처럼이 작업을 수행 할 수 있습니다 (http://stackoverflow.com/question/14220321/how-do-i-return-the-asynchronous-call) –

+0

@ 패트릭 - 죄송합니다. –

+0

비동기 메서드를 사용하고 있지만 데이터를 사용하기 전에 완료 될 때까지 기다리지 않고 문제가 발생했기 때문에 중복되었습니다. 연결된 복제본 –

답변

0

가 사용하고있는 jQuery의 $ 갔지(), 당신이 찾고있는 것은 : 당신이 비동기 호출을 수행하고 있기 때문에

mjvfiurl에 의해 정의되지 않을 수 있습니다
$.get("/wp-content/plugins/mjv_sample_plugin/file1.php", function(mjvdata) { 
    var mjvfiurl = mjvdata; 
    var fapDom = '<div id="fap-wrapper"><img src="'+mjvfiurl+'" alt="" /></div>'; 
    $('body').append(fapDom); 
}); 

귀하의 문제가 있음 URL을 얻기 위해 전송 된 요청이 아직 완료되지 않았기 때문에 본문에 추가하는 시간.

비동기 호출을 수행하면 나머지 JavaScript가 실행됩니다. 그냥 자바 스크립트로 PHP에서 변수를 전달해야하는 경우

+0

그 게시글에서 허용 된 답변이 동기식 및 비동기식 프로그래밍 간의 차이점뿐만 아니라 해결 방법에 대한 예제를 제공하기 때문에 @ Patrick의 의견에 투표했습니다. 너의 정확한 문제. – Superbus

0
<script type="text/javascript"> 
    phpVars = new Array(); 
    <?php foreach($vars as $var) { 
     echo 'phpVars.push("' . $var . '");'; 
    }; 
    ?> 
</script> 
<script type="text/javascript" src="yourScriptThatUsesPHPVars.js"></script> 

, 당신은 시작하기 위해 자바 스크립트를 사용하여 PHP/HTML 파일의 태그를 가질 수 있습니다. 당신이 함수를 호출하려는 경우

0

는, 당신은 [I 비동기 호출의 응답을 반환하려면 어떻게?]이

<script type="text/javascript"> 
    functionOne(<?php echo implode(', ', $arrayWithVars); ?>); 
    functionTwo(<?php echo $moreVars; ?>, <?php echo $evenMoreVars; ?>); 
</script> 
<script type="text/javascript" src="YourFunctions.js"></script> 
관련 문제