2016-07-31 81 views
1

我有一些PHP,输出一些jQuery代码使用<<<EOT。 PHP包含一个我想在jQuery中使用的数组,但无法使其工作。PHP阵列jQuery阵列内<<< EOT

问题出在jQuery数组总是null。我试着做

PHP的几种方法:

$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始终为空。我已经删除了不相关的代码,并且自由地处理了上述大部分代码,但我认为它准确地表示了我的代码在这个问题上的逻辑。

从上面的代码显而易见我做错了什么?

编辑

在上面我的代码示例中,我写道:

$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变量。这一个工程(使用$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

相关问题