2016-07-31 3 views
1

<<<EOTを使用してjQueryコードを出力するPHPがあります。 PHPにはjQuery内部で使用したい配列が含まれていますが、動作させることはできません。PHP配列とjQuery配列<<< EOT

問題はjQuery配列では常に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; 
} 

$myjQueryVarは常にnullである:私は

PHPを行うにはいくつかの方法を試してみました。私は無関係のコードを切り取り、上記のほとんどを自由に手渡しましたが、私はこの問題に関する私のコードのロジックを正確に表していると思います。

私が間違っていることは上記のコードから明らかですか?

EDIT上記の私のコード例で

、私が書いた:

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

それが違いを作る場合、私は知らないが、私が使用しています実際のコードは次のとおりです。

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

以下の@Janの提案に従うと、レンダリングされる出力は次のようになります。

ヒアドキュメントの内部の
function postToFeed() { 
    var obj = { 
    name: , 
    description: 
}; 

答えて

1

使用中括弧:

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

コメントで言ったようにまた、あなたは、JavaScriptとPHP変数を混合しています。この1は、(代わりに$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

レンダリングされた出力は、 '名前を示しています、'と 'でSyntaxErrorとFirefoxでエラー:予想される表現、だ '' 名前:、実際には何' – rwkiii

+0

**に** '$ myjQueryVar'? – Jan

+0

私は自分の質問を編集しました。私はそれがあなたの質問に答えると思いますか? – rwkiii

関連する問題