$ id不与链接一起使用

时间:2013-09-28 18:55:14

标签: php string hyperlink

我正在 foreach循环中创建超链接。它工作正常。当我在URL参数中传递 $ id 时,它无法正常工作。我的链接显示 http:// * ** * /test/index.php/test/view?id=**。我不知道我在这里做错了什么。

    foreach($list as $item)
    {
         $rs[]=$item['uname'];
         $id=$item['uid'];
         //var_dump($id); here it's printing $id value...
         echo '<b> <a href="/test/index.php/test/view?id="'.$id.'">'.$item['uname'].'</a><br/>';
    }    

我想通过超链接传递 $ id 值。请建议我。

3 个答案:

答案 0 :(得分:2)

你有另一个“。

改变这个:

echo '<b> <a href="/test/index.php/test/view?id="'.$id.'">'.$item['uname'].'</a><br/>';

对此:

echo '<b> <a href="/test/index.php/test/view?id='.$id.'">'.$item['uname'].'</a><br/>';

答案 1 :(得分:2)

它当然是打印的 - 您的浏览器只是没有显示给您,因为由于"变量周围的额外$id,它没有被正确解析为HTML。

按如下方式设置标题:

header('Content-Type: text/plain');

你会看到它返回的内容如下:

<b> <a href="/test/index.php/test/view?id="55">FOOBAR</a><br/>
            ^                             ?  ^

正如您所看到的,问题是55之前的额外双引号。

将您的代码更改为:

echo '<b> <a href="/test/index.php/test/view?id=' . $id .'">'. 
$item['uname'] . '</a><br/>';

或者,您也可以使用双引号并将变量括在{}中,如下所示:

echo "<b> <a href=\"/test/index.php/test/view?id=$id\">{$item['uname']}
</a><br/>";

我使用sprintf因为它是更清洁

echo sprintf('<b> <a href="%u">%s</a><br/>', $id, $item['uname']);

答案 2 :(得分:1)

试试这个:

echo "<b><a href='/test/index.php/test/view?id=$id'>$item</a></b><br/>";

这有效!

是最简单,最干净的选择。在双重转义的内部,简单用于html并通过双重转义所有变量都写在里面:)。非常简单。