-1

これは私のJavaScript関数です。

<script>
    function output($file_name, $content)
    {
     document.getElementById("content_title").innerHTML="    "+$file_name;
     document.getElementById("content").innerHTML=" "+$content; 
    }
</script>

これは私の PHP コードです。

<?php
$dir = "img_png";
$files = scandir($dir);
$dir_length = count($files);
?>

これは私の PHP コードの 2 番目の部分です (問題あり)。問題: $content="any string" の場合。すべて正常に動作しますが、$content=file_get_contents('file'); 私のトリガーされた関数は、.innerHTML 要素をまったく変更しません。

<?php
for ($i=2;$i<$dir_length;$i++){
$title=explode(".png", $files[$i]);
$content=file_get_contents('./content_txt/tv.txt');
echo "<td><button id='button' class='button' onClick=\"output('", $title[0],"";
echo "', '", $content,"";
echo "')\"><img src=\"/img_png/", $files[$i], "\"></img></button></td>";
}
?>
4

3 に答える 3

0

"tvvvvvv";

その文字列をPHPからコピーして貼り付けたとしますtv.txt

削除"して;- ファイルには必要ありません。

そして"、javascriptであなたの問題です。

于 2013-07-24T10:59:08.087 に答える
0

これで問題の解決を開始します(文字列を連結するには、コンマの代わりにドットを使用してください)

<?php
for ($i=2;$i<$dir_length;$i++){
    $title=explode(".png", $files[$i]);
    $content=file_get_contents('./content_txt/tv.txt');
    echo "<td><button id='button' class='button' onClick=\"output('" . $title[0];
    echo "', '" . $content;
    echo "')\"><img src=\"/img_png/" . $files[$i] . "\"></img></button></td>";
}
?>

また$content-variable、ループの外側に設定し、終了タグをスキップします (使用されていないため、違い</img>はありません)。

PHPから送信するときにもデータをエンコードします(urlencodeを使用)

<?php
$content=file_get_contents('./content_txt/tv.txt');
for ($i=2;$i<$dir_length;$i++){
    $title=explode(".png", $files[$i]);
    echo "<td><button id='button' class='button' onClick=\"output('" . $title[0];
    echo "', '" . urlencode($content);
    echo "')\"><img src=\"/img_png/" . $files[$i] . "\"></button></td>";
}
?>

JavaScript では、コンテンツをデコードする必要があります。

function output($file_name, $content)
{
    $content = decodeURI($content);
    document.getElementById("content_title").innerHTML="    "+$file_name;
    document.getElementById("content").innerHTML=" "+$content; 
}
于 2013-07-24T10:13:11.377 に答える
0

Your file contents may contain line breaks or special characters that need escaping in JS, you will need to escape special characters before passing the string to the javascript function.

于 2013-07-24T10:11:57.210 に答える