2017-12-05 11 views
0

私はこのことを理解しようとしてきました。私は何が間違っているのか分からないかもしれません。二重引用符で囲まれた文字列をPHPからjavascriptに渡す

データベースから取得した二重引用符を含む文字列を渡して、textareaに表示しようとしています。

状況サンプルは次のようになります。

<?php 
    $content = '<div align="center"><b>This is a sample content.</b></div>'; 
    echo '<textarea id="myTextArea"></textarea>'; 
    echo '<button onclick="myFunction('.$content.')">Click me</button>'; 
?> 

<script> 
    function myFunction(content){ 
    document.getElementById("myTextArea").innerHTML = content; 
    } 
</script> 

期待される結果は、myTextAreaにテキストが含まれている必要がありますが、結果は示していることを次のようになります。

Output

あなたのヘルプは大歓迎です。

+3

は= '

This is a sample content.
' この '$コンテンツを試してみてください。 ' – musashii

+0

これは私の部分のタイプミスでしたが、出力は同じままです –

答えて

1

あなたはそれを読み込むようhtmlspecialchars()を使用して、あなたの出力を引用する必要があります

<?php 
    $content = "<div align=\"center\"><b>This is a sample content.</b></div>"; 
    echo '<textarea id="myTextArea"></textarea>'; 
    echo '<button onclick="myFunction(\''.htmlspecialchars($content).'\')">Click me</button>'; 
?> 

<script> 
    function myFunction(content){ 
    document.getElementById("myTextArea").innerHTML = content; 
    } 
</script> 
+0

これはトリッキーな感謝の男でした! –

+0

@harveycaropeあなたは大歓迎です:) –

+2

@harveycaropeこの問題が解決した場合は、それを受け入れられた回答としてマークしてください。 – Laiman

0

あなたは、文字列内のあなたの引用符をエスケープする必要があります。

$content = "<div align=\"center\"><b>This is a sample content.</b></div>"; 

あなたはまた、

$content = "<div align='center'><b>This is a sample content.</b></div>"; 

または

$content = '<div align="center"><b>This is a sample content.</b></div>'; 

ようEDIT、この場合にはアポストロフィを使用することができます。

また、あなたは文字列としてコンテンツを使用してください:

echo '<button onclick="myFunction(\''.$content.'\')">Click me</button>'; 
+0

あなたの提案を試しましたが、そのトリックはしません –

関連する問題