0

以下の表に、各質問の各画像を示します。

    <table id="tableqanda" cellpadding="0" cellspacing="0">
        <thead>
        <tr>
            <th width="5%" class="questionno">Question No.</th>
            <th width="11%" class="image">Image</th>
        </tr>
        </thead>
        </table>
        <div id="tableqanda_onthefly_container">
        <table id="tableqanda_onthefly" cellpadding="0" cellspacing="0">
        <tbody>
            <?php
              foreach ($arrQuestionId as $key=>$question) {
            echo '<tr class="tableqandarow">'.PHP_EOL
echo '<td width="5%" class="questionno">'.htmlspecialchars($arrQuestionNo[$key]).'</td>' . PHP_EOL;
            echo '<td width="11%" class="imagetd">';
            if (empty($arrImageFile[$key])) {
                echo '&nbsp;';
            } else {
                echo '<ul class="qandaul"><li>';
                echo implode("</li>\n<li>", array_map(function($imgitem){
                return htmlspecialchars($imgitem);
            },  $arrImageFile[$key]));
                echo '</li></ul>';
            }
            echo '</td>';
            echo '</tr>'.PHP_EOL;
            }
    ?>
        </tbody>
        </table>
        </div>

現時点では、画像ファイル名を箇条書きリストにリストしているだけです。しかし、私がやりたいのは、各ファイルをハイパーリンクとして設定し、ユーザーが画像リンクをクリックすると、その画像が別のページに表示され(別のウィンドウが開きます)、画像自体が表示されるようにすることです。

私の質問は、これをどのように行うことができるかということです。次の手順は何をする必要がありますか?誰かがそれを段階的にコーディングする方法を教えてくれれば、私はそれをオーディオやビデオにも使用できます。

ありがとう

4

3 に答える 3

1

さて、私はあなたが何をしたいのかを考えていました。サムネイルなどとして画像のリストを表示してから、画像をクリックして新しいページ(previewimage.php)に(レイアウト内で)表示したいと思います。 )。

あなたにはたくさんのオプションがあります...しかしそれらはすべてURL(example.com/previewimage.php)を通していくつかの情報を渡すことに要約されます。

まず、URLを介して情報を渡す2つの典型的な方法を調べてみましょう

$_GETリクエスト

時々、ウェブサイトパスがURLに情報を追加するのを見るでしょう。

example.com/previewimage.php?var=xxx

これにより、$_GETスーパーグローバルを介してPHPスクリプトに情報を渡すことができます。

Htaccess

ちょっと凝ったものにしたい場合は、htaccessを使用してクリーンなURLを作成できます

RewriteRule ^([a-zA-Z0-9]+)/$ previewimage.php?var=$1

これにより、example.com / xxxのようなURLが可能になり、サーバーはexample.com/previewimage.php?var=xxxにアクセスしたように動作します。

情報をURLに渡す方法がわかったので、$ _GET['var']を使用して画像を表示するためのいくつかのメソッドを調べることができます。

最も簡単な方法は、ファイルの名前を渡すことです...この例では、example.pngと呼びます。

上記の基本的な$_GETリクエストメソッドを使用している場合は、example.com / previewimage.php?var=example.pngのようなURLになります。

次に、previewimage.phpで、次のようなことを行うだけです。

<img src="<?php echo $_GET['var'] ?>"/>

これは出力します

<img src="example.png"/>

ただし、これは非常に安全な方法ではありません。誰でも好きなものをロードできるからです。より良いオプションは、配列またはデータベースを使用してから、ある種のキーを渡してファイル名を取得することです。

これはあなたを正しい道に導くと思います(そしてそれがあなたの質問に答えることを願っています)。

于 2013-01-26T18:14:55.097 に答える
0

これを行う方法のサンプルを次に示します。内側の「Ifelse」ループを編集しました

YOUR_BASE_URL_FOR_IMAGES_HERE_ENDING_WITH_A_DASHをサーバー上の画像のディレクトリパスに置き換えます。

if (empty($arrImageFile[$key])) {
    echo '&nbsp;';
} else {
    echo '<ul class="qandaul"><li>';
    echo implode("</li>\n<li>", array_map(function($imgitem) {
                        return '<a href="YOUR_BASE_URL_FOR_IMAGES_HERE_ENDING_WITH_A_DASH' . htmlspecialchars($imgitem) . '" target="_blank">' . htmlspecialchars($imgitem) . '</a>';
                    }, $arrImageFile[$key]));
    echo '</li></ul>';
}
于 2013-01-26T17:54:39.320 に答える
0

この質問は、新しいタブでリンクを開く方法であると想定しています。好きなもの、この場合は画像をこれで囲みます。

<a href="/linktoimage.png" target="_blank"><img src="/linktoimage.png" alt="my image"></a>
于 2013-01-26T17:32:54.220 に答える