0

foreach loopでハイパーリンクを作成しています。正常に動作しています。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値を渡したい。私に提案してください。

4

3 に答える 3

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/>';
于 2013-09-28T18:57:42.423 に答える
2

もちろん、それは印刷されています-変数の"周りの余分な部分のためにHTMLとして正しく解析されていないため、ブラウザはそれを表示していません.$id

次のようにヘッダーを設定します。

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']);
于 2013-09-28T18:59:52.123 に答える
1

これを試して:

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

これはうまくいきます!

そして、最も簡単でクリーンなオプションです。二重エスケープの内側では、シンプルが html に使用され、二重エスケープによってすべての変数が :) 内に書き込まれます。とてもシンプルです。

于 2013-09-28T19:02:24.080 に答える