如何在单独的窗口中打开图像?

时间:2013-01-26 17:24:51

标签: php jquery html ajax mysqli

我在下面有一张表格,其中列出了每个问题的每张图片。

    <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>

现在它只是在项目符号列表中列出图像文件名。但我想要做的是,我想将每个文件设置为超链接,以便如果用户点击图像链接,它将在单独的页面中显示该图像(将打开一个单独的窗口),显示图像本身< / p>

我的问题是如何做到这一点,我需要做以下哪些步骤?如果有人可以告诉我如何逐步编码,那么我也可以将它用于音频和视频。

由于

3 个答案:

答案 0 :(得分:1)

好的,我一直在考虑你想做什么,我想你想要以缩略图或其他形式显示图像列表,然后点击图像并在新页面上显示它(在你的布局中)( previewimage.php)。

你有很多选择...但它们都归结为通过URL传递一些信息(example.com/previewimage.php)。

首先,我们来看一下通过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一样。

现在你知道如何将信息传递给网址,我们可以研究一些使用$ _GET ['var']来显示图像的方法。

最简单的方法是简单地传递文件的名称......对于这个例子,我们称之为example.png。

如果您使用上面的基本$ _GET请求方法,您将拥有一个像example.com/previewimage.php?var=example.png这样的网址。

然后,在previewimage.php中,您只需执行类似

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

这将输出

<img src="example.png"/>

然而,这不是一种非常安全的方法,因为任何人都可以加载他们想要的任何东西。一个更好的选择可能是使用数组或数据库,然后传递某种键并检索文件名。

我认为这会让你走上正确的道路(我希望它能回答你的问题)。

答案 1 :(得分:0)

假设这个问题是如何在新标签中打开链接。 环绕你喜欢的任何地方,在这种情况下成像,用这个。

<a href="/linktoimage.png" target="_blank"><img src="/linktoimage.png" alt="my image"></a>

答案 2 :(得分:0)

以下是如何完成此操作的示例。刚编辑内部的“If else”循环

将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>';
}