2011-09-10 27 views
0

これらの行のすべてで「終端文字列リテラル」エラーが発生します。終端文字列リテラル

私はPHPの初心者ですので少し失礼です。

<a class="download" href="#" onclick="downloadSite('<?php echo $this->_tpl_vars['s']['url']; ?> 
', <?php echo $this->_tpl_vars['s']['psid']; ?> 
)"><img src="images/download.png" width="20" alt="Download" title="Download" /></a> 

ありがとう:

は、ここでは、コードです!

+0

することは、あなたにエラーを与えてPHPですまたはJavaScript? – nobody

+0

@tsmeeeは、JavaScriptのメソッド呼び出しに値をエコーするためにPHPを使用しているので、各引数を適切にエスケープする必要があります。 –

答えて

1

を最初の引数を閉じる必要があります。また、$この場合は - > _ tpl_vars [ 'S'] [ 'PSID']文字列である、あなたはまた、引用符の内側にそれを置く必要があります。

<a class="download" href="#" onclick="downloadSite('<?php echo json_encode($this->_tpl_vars['s']['url']); ?>', '<?php echo json_encode($this->_tpl_vars['s']['psid']); ?>' 

) ">

+0

'json_encode'は何をしますか? – novicePrgrmr

+0

javascript表記に値をエンコードします。あなたの場合、PHPから渡された文字列に現れる引用符をエンコードします。この質問を見てください:http://stackoverflow.com/questions/168214/pass-a-php-string-to-a-javascript-variable-including-escaping-newlines – itsmeee

1

私はPHPが分かりませんが、downloadSiteの直後に'の文字列を開き、その文字列の中に'も使用していて、閉じているようには見えません。

+2

いいえ、それは問題ではありませんが、引数は開いていると同じ行で閉じる必要があります) – genesis

1

あなたは各PHPの変数をエコーする前にjson_encodeを追加してみてください同じ行に

<a class="download" href="#" onclick="downloadSite('<?php echo $this->_tpl_vars['s']['url']; ?>' 
+0

これは答えの代わりにコメントとして良いかもしれません:) – Jon

+0

@ジョン:いやされません。これは正解です – genesis

+0

これは... *今*です。 – Jon

関連する問題