2016-07-31 17 views
1

<<<EOT을 사용하여 jQuery 코드를 출력하는 PHP가 있습니다. PHP는 jQuery에서 사용하고자하는 배열을 포함하고 있지만 작동시키지 못합니다.<<< EOT

문제는 jQuery 배열의 경우 항상 null입니다. $myjQueryVar는 항상 null의 경우, 위의 코드에서

$myPHPVar = array('name' : 'data1', 'description' : 'data2'); 

function confirmation() { 

    global $myPHPVar; 

    ?> 
    <script type="text/javascript"> 
    var $myjQueryVar = <?php echo json_encode($myPHPVar); ?> 
    </script> 
    <?php 

    var $confirmation = <<<EOT 
<script> 
function postToFeed() { 
    var obj = { 
     name: $myjQueryVar['name'], 
     description: $myjQueryVar['description'] 
    }; 

    feed.post(obj); 
} 
</script> 

<div><a href="#" onClick="postToFeed()">Share your results!</a></div> 
EOT; 

    return $confirmation; 
} 

: 나는 몇

PHP를하는 방법을 시도했습니다. 관련없는 코드를 잘라 내고 위의 대부분을 자유롭게 처리했지만이 코드가 내 코드의 논리를 정확하게 반영한다고 생각합니다.

위의 코드에서 내가 뭘 잘못하고있는 것이 분명합니까?

편집 위의 내 코드 예제에서

, 나는 썼다 :

$myPHPVar = array('name' : 'data1', 'description' : 'data2'); 

이 차이가 있는지 잘 모르겠지만, 내가 사용하고 실제 코드는 다음과 같습니다

$myPHPVar = array(
    "name"   => 'Odio a', 
    "description" => 'Phasellus viverra vel odio a laoreet.' 
); 

여전히 @ 아래 제안 사항을 따르면 렌더링 된 출력은 다음과 같습니다.

히어 닥 내부
function postToFeed() { 
    var obj = { 
    name: , 
    description: 
}; 

답변

1

사용 중괄호 :

var obj = { 
    name: '{$myjQueryVar['name']}', 
    description: {$myjQueryVar['description']} 
}; 

코멘트에 말했듯 또한, 당신이 혼합되는 자바 스크립트와 PHP 변수. 이 사람은 (대신 $myPHPVar 사용) 작동합니다`와 구문 에러`파이어 폭스의 오류 :

<?php 
$confirmation = <<<EOT 
<script> 
function postToFeed() { 
    var obj = { 
     name: '{$myPHPVar['name']}', 
     description: '{$myPHPVar['description']}' 
    }; 

    feed.post(obj); 
} 
</script> 

<div><a href="#" onClick="postToFeed()">Share your results!</a></div> 
EOT; 

echo $confirmation; 
?> 
+0

렌더링 된 출력 이름'을 보여줍니다 예상 표현 얻었다 ','이름 : 실제로 무엇,' – rwkiii

+0

**에 **'$ myjQueryVar'? – Jan

+0

내 질문을 편집했습니다. 내 질문에 대답하는 것 같아? – rwkiii