【问题标题】:How do I make a PHP $row ahref?如何制作 PHP $row href?
【发布时间】:2018-08-29 00:45:03
【问题描述】:

我已经在 googl 上搜索了如何实现这一点,但每个建议都不起作用,要么它不显示来自数据库的结果,要么是 "" 字符出现在表格上方。

我希望在这里实现的是将此表格的最后一行显示为链接,因为它是一个将在其中显示的缩短链接。

    foreach($data as $row)
{
    echo '<tr>
        <td id="card_name_text">'.$row["name"].'</td>
        <td id="card_type_text">'.$row["rarity"].'</td>
        <td id="card_foil_text">'.$row["serial"].'</td>
        <td id="card_rare_text">'.$row["link"].'</td> // This row
    </tr>';
}

这些是我尝试过的方法:

<ahref="<td id="card_rare_text">'.$row["link"].'</td>"></a>

<td id="card_rare_text"><a href="'.$row["link"].'"></a></td>

<td id="card_rare_text">'.$row["<a href="link"></a>"].'</td>

<td id="card_rare_text">'<a href=".$row["link"].'</td>"></a>

我不是 PHP 爱好者,所以我不完全确定我哪里出错了,任何帮助将不胜感激!

【问题讨论】:

  • 这个&lt;td id="card_rare_text"&gt;&lt;a 会发生什么?在结束 &lt;/a&gt; 之前添加一些内容,以便您可以点击它。
  • 我试了一下,但数据库中的结果不再显示
  • 您能否更新问题以显示您所做的更改和/或页面呈现的内容?

标签: php html pdo


【解决方案1】:

首先,href 必须指向一个实际的网址...您提到$row['link'] 是一个缩短的 URL,因此您需要在 href 部分扩展它以获取它上班。

例如,如果您的缩短网址是“CNN”,那么工作行将是:

<td id="card_rare_text"><a href="http://www.'.$row["link"].'.com">$row["link"]</a></td>

&lt;a&gt;&lt;/a&gt; 标记之间的文本是您希望显示给用户点击的任何内容。

【讨论】:

  • 太棒了,谢谢!这是我将使用的另一个很好的解决方案,也很少!我现在不必在我的输入字段上使用值,再次感谢您,非常感谢
【解决方案2】:

您应该在关闭 td 之前完成 a 标记。还要在标签中添加一些东西。在此示例中,我放置了 &nbsp,它只是一个安全的空白空间。

<td id="card_rare_text"><a href="<?php echo $row["link"];?>">&nbsp;</a></td>

【讨论】:

  • 有点难以点击空格字符 ;)
  • 另外,&lt;?php echo... 不能在 OP 使用的字符串文字中工作
  • @Phil OP 没有简要说明,我建议认为他们可能有一些 CSS 技巧。对于字符串文字,你是对的,但我注意到在使用尽可能少的 PHP、进出 PHP 和网格化 HTML 时资源使用率较低,但这是另一个故事。
  • &lt;?php echo... 在字符串文字中工作。将变量放在括号内的字符串文字是当您在 php 中时,并且您想将变量放在引号内。
  • @FoulFoot 它肯定不会。如果您不确定,我建议您尝试一下...echo 'Here is my string with &lt;?php echo $something ?&gt; in it';。这是 OP 目前正在使用的
【解决方案3】:

请试试这个方法

foreach($data as $row)
{
    echo "<table>";
    echo '<tr>
    <td id="card_name_text">'.$row["name"].'</td>
    <td id="card_type_text">'.$row["rarity"].'</td>
    <td id="card_foil_text">'.$row["serial"].'</td>
    <td id="card_rare_text"><a href="'.$row["link"].'"> Link name</a></td>
    </tr>';
    echo "</table>";
}

如果链接必须从行中知道他的名字,甚至可以这样。

foreach($data as $row)
{
    echo "<table>";
    echo '<tr>
    <td id="card_name_text">'.$row["name"].'</td>
    <td id="card_type_text">'.$row["rarity"].'</td>
    <td id="card_foil_text">'.$row["serial"].'</td>
    <td id="card_rare_text"><a href="'.$row["link"].'"> '.$row["link"].'</a></td>
    </tr>';
    echo "</table>";
}

【讨论】:

  • OP 在他们的循环中没有&lt;table&gt; 那么为什么你的呢?
  • @Phil 只是认为添加它是个好主意!但即使没有它也应该可以工作!
  • 使用第二种方法并去掉';似乎使它显示为一个可点击的链接,但它正在主机目录中寻找一个链接,这不是我所希望的。缩短的链接是谷歌链接@FedeCaceres 我把它放在上面的链接上,所以你可以看到
【解决方案4】:

为您提供更多选择。您可以使用字符串插值。

foreach ($data as $row) {
    echo "<tr>
    <td id='card_name_text'>{$row['name']}</td>
    <td id='card_type_text'>{$row['rarity']}</td>
    <td id='card_foil_text'>{$row['serial']}</td>
    <td id='card_rare_text'><a href='{$row['link']}'>{$row['link']}</td>
    </tr>";
}

【讨论】:

  • 最好不要在 PHP 中回显所有的 HTML,而是切换出 PHP 并回显所有的 HTML,只回显变量本身。
  • @GrumpyCrouton 我完全同意。 OP 应该真正寻求理解 MVC 模式,即控制器和视图逻辑的分离。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-24
  • 2021-08-21
  • 1970-01-01
相关资源
最近更新 更多