• ベストアンサー

a href=のリンクについて。

いつもお世話になっております。 今回分からないのは、 <td><a href="/php/hoge.php?id=<?=$row[0]?">STYLE="color:black"><?=$row["name"]?></td> と言うやり方では上手くリンクするのですけど、 echo "<td>".$row["name"]."</td>"; に対して上のやり方でリンクするように色々加工してみたのですが、 エラーが出て、上手く実装できないのです。 上の形のように下の形式でなんとかリンクを飛ばしたいです。 ご指導のほどよろしくお願いします。

  • PHP
  • 回答数2
  • ありがとう数4

質問者が選んだベストアンサー

  • ベストアンサー
  • hrm_mmm
  • ベストアンサー率63% (292/459)
回答No.2

echo "<td><a href=\"/php/hoge.php?id=" .$row[0]. "\" STYLE=\"color:black;\">" .$row["name"]. "</a></td>"; html 構文中の""を\でエスケープしてないから、文字列が切れちゃってるんじゃないのかな? 変数を文字列の外に全部出すなら、変数置換を行わない''(シングルクオート)で文字列を括ってみたら? echo '<td><a href="/php/hoge.php?id=' .$row[0]. '" STYLE="color:black">' .$row["name"]. '</a></td>'; html構文の""は''でもよいので以下のようにもできます。 echo "<td><a href='/php/hoge.php?id=${row[0]}' STYLE='color:black;'>${row["name"]}</a></td>";

rawguns
質問者

お礼

おがげで無事リンクすることができました。 私の勘違いですが、$row[0]→$row[id]で無事正常に動作しました。 何冊か本を買って勉強していますが、まだサンプルを少しずつ直すぐらいしかできていません・・勉強不足です。 ところで三つともリンクすることができましたが、三つの内、どの構文を使えば良いのですか?

その他の回答 (1)

  • moon_night
  • ベストアンサー率32% (598/1831)
回答No.1

> echo "<td>" .$row["name"] ."</td>"; これで特には問題はありません。 .の前にスペースを入れたりしてもだめでしょうか? 他のところでエラーが起きていませんか? エラーがでる構文全文があれば分かるかもしれません。

rawguns
質問者

お礼

言葉が足らず申し訳ありません。 echo "<td>" .$row["name"] ."</td>"; をいじらなければ、テーブルが正常に動作しています。 それをa href=...で動的にidとリンクをしたいということです。 なんとかhrm_mmm さんの構文をヒントに解決しました。 ありがとうございました。

関連するQ&A

  • <A href ~で複数の値を渡したい

    お世話になります。 ODBC経由でレコードを取得して表示させた後、それぞれのレコードの 後に4つのリンクを張って、押されたリンクによって状態を変更 したいです。 表はこんな感じです。 ID 氏名 状態 リンク1 リンク2 リンク3 リンク4 1 山田 1 1に状態変更 2に状態変更 3に状態変更 4に状態変更 2 山下 3 1に状態変更 2に状態変更 3に状態変更 4に状態変更 3 山本 2 1に状態変更 2に状態変更 3に状態変更 4に状態変更 以下300件くらい ODBCに接続は成功します。 $res = $db-> query($sql); while ($row =& $res->fetchRow(db_fechtmode_assoc)) { print("<tr>"); print("<td>".$row["No"]."</td>"); print("<td>".$row["氏名"]."</td>"); print("<td>".$row["状態"]."</td>"); //この下が問題の行 print("<td><a href= \"hoge.php?ID=".$row["ID"]."\">1に状態変更</a></td>"); //あとリンクを状態変更4まで3つ並べます print("</tr>\n"); テーブル形式に吐かせます。問題の行で、IDと a=1 を持って いきたいのですが、記述の仕方が分かりません。このままでは IDは持って行ってくれます。 //explode関数は「,」で区切り順番に配列に格納する //$_SERVER['QUERY_STRING']はURLの?の後に付けられた //文字列(引数)を取得できます。 という記事も見たのですが、コンマでつなげてもa=1は持って行って くれません。 別にリンクじゃなくてもいいのです。ボタンや画像でもいいの ですが、このWhileテーブルでボタンを4つ並べる書き方も、 ボタンを押したら値を取得する書き方も分かりませんでした。 勢いでPEARを使っています。PHP5.2.6です。よろしくお願いします。

    • ベストアンサー
    • PHP
  • PHPでレコード一覧から詳細へのリンク方法

    MySQLでデータベースを構築し、PHPで表示しています。 レコードを一覧で並べるのはうまく行きましたが…一覧から詳細へリンクさせるのがうまく行きません。 detail.phpというファイルを作成してリンクさせようと思っていますが… (1)formタグを使って、GETでSUBMITする形にする場合はどうしたらいいでしょうか? (2)普通にaタグを使って、detail.php?id=xxxxx という形にする方法でもいいのですが、リンクを教えてdetail.phpに移った時点で"?"以下が消えてしまいます。 (1)の方法がやり易いかと思い、色々調べて自分なりにやってみましたが、"detail.php?id=%BE%DC%BA%D9&id=1&id=4&id=3&id=5&id=6&id=7&id=9&id=10&id=11" という形になり、なんでか全てのIDを並べている形になっています… 理想はdetail.php?id=xxxxxとなって欲しいのですが… ちなみにコードは以下の通りです。 <? php echo "<table>"; echo "<tr>"; echo "<th>ID</th>"; echo "<th>名前</th>"; echo "<th>所在地</th>"; echo "<th>詳細</th>"; echo "</tr>"; while( $row = mysql_fetch_array($result) ) { echo "<form method=\"GET\" action=\"detail.php?id=".$row["id"]."\">"; echo "<tr>"; echo "<td>".$row["id"]."</td>"; echo "<td>".$row["name"]."</td>"; echo "<td>".$row["addr"]."</td>"; echo "<td><input type=\"submit\" value=\"詳細\" name=\"id\"></td>"; echo "<input type=\"hidden\" value=\"".$row["id"]."\" name=\"id\">"; echo "</tr>"; } echo "</table>"; ?>

    • ベストアンサー
    • MySQL
  • 分けたリンクないで更にデータを分けたい。

    echo '<strong> </strong><a href="a.php?id=' . $row['id'] . '">' . $row['name'] . '</a><br/>'; こうやると綺麗に会社ごとのid別にリンクが入ります。 例えばa.php?=nintendoというリンクをクリックしたらid,nintendoしか表示されないようにするには、どうしたら良いですか?? idをPOSTしようと思いましたが、フォームじゃないし、POSTできませんよね??

    • ベストアンサー
    • PHP
  • phpでのリンク

    PHP初心者なのですが、教えて下さいm(__)m プルダウンでの選択史を選ぶと次にまた選択史を表示させたいのですが、PHPを勉強したばかりなのでスマートにソースを書くことができません。 ↓のような感じで一応できたのですが、これはおかしいと言われました。 PHPなのになぜ、リンクのところだけがHTMLになっているの?と。 言われてみればそうなのですが、これ以外よく分からなくて…。 色々調べたのですが、上手くいきませんでした。 <A href="data/hoge.php"><? echo ($hoge_data[0]); ?></A><BR> <A href="data/hoge_1.php"><? echo ($hoge_data[1]); ?></A><BR> : : : このおかげで<hoge.php>、<hoge_1.php>…といっぱい必要になってきてしまい…。 何かスマートな方法はありますでしょうか? 宜しくお願い致しますm(__)m

    • ベストアンサー
    • PHP
  • <a href>タグ内のURL抽出

    正規表現初心者です。ご教授よろしくお願いします。 <a href=http://hoge.com/hoge>hoge</a> <a href=http://hoge.com/hoge>hoge<br>hoge</a> 以上の<a href>リンクから、それぞれURLだけを抽出したいのですが うまくできません。 ereg("<a href=(.+)>(.+)</a>",$hoge,$a); echo $a[1]; で、1つ目はURL抽出できたのですが 2つ目のように<br>があると『 http://hoge.com>hoge 』と表示されてしまいます。 このような場合、どのようにして抽出すればよいのでしょうか??

    • ベストアンサー
    • PHP
  • PHPコードをHTML形式に変換

    しょっぱなからお見苦しいコードで申し訳ありません。 <table border="1"> <tr> <td>社員ID</td> <td>社員名</td> <td>部署名</td> <td>役職名</td> </tr> <?php $dsn = 'mysql:dbname=thscontest;host=localhost'; $user = 'root'; $password = ''; $dbh = new PDO($dsn, $user, $password); $sql = 'SELECT e.id, e.name, p.name AS name2, e.offtitle FROM employee e, post p WHERE e.post = p.id GROUP BY e.id'; foreach ($dbh->query($sql) as $row) { echo '<tr>'; print('<td><a href=member.php?id=' . $row['id'] . '>' . $row['id'] . '</a></td>'); print('<td>' . $row['name'] . '</td>'); print('<td>' . $row['name2'] . '</td>'); print('<td>' . $row['offtitle'] . '</td>'); echo '</tr>'; } ?> </table> このコードを表示させソース表示させますと <table border="1"> <tr> <td>社員ID</td> <td>社員名</td> <td>部署名</td> <td>役職名</td> </tr> <tr> <td><a href=member.php?id=hoge>hoge</a></td> <td>東京太郎</td> <td>hoge部署</td> <td>hoge役</td>   </tr>   <tr>[省略]</tr> </table> というHTMLのコードが出力されるわけですが このHTML形式のソースを使いたいのですが処理中に変換をかける方法はありますでしょうか? 御存知の方いらっしゃいましたらよろしくお願いします。

    • ベストアンサー
    • PHP
  • locatin.hrefのリンク付き画像とPHP

    現在、MySQLとPHPを組み合わせたシステムを作っています。 MySQLのi5_volumeというカラムの中の数値が「1より大きい」ときにボタンを表示させ、0以下であれば表示させないようにしたいと考えています。 ボタンは画像でありlocation.hrefで別のページにリンクされています。 (OAuthで認証エラーを避けるため <a href></a> はNG) 画像からのリンクは下記のソースになります。 【画像のソース(locatin.hrefのリンク付き)】 <img src="./abc.png" onclick="location.href='sell.php?e2_id=<?php echo $price['e2_id']; ?>&time=<?php $time = date('G'); echo $time; ?>';" /> 「i5_volumeが1より大きければ画像を表示させ、0以下であれば表示させない」ためのPHPは下記です。 【規定値で画像が表示されるPHP(画像は直リンク)】 <?php IF ($my_volume['i5_volume'] >= 1) {echo "<IMG src=\"./abc.png\" >";} ELSE {echo "";} ?> 従い、 【規定値で画像が表示されるPHP(画像は直リンク)】 の画像のソース部分を 【画像のソース(locatin.hrefのリンク付き)】 に置き換えれば基本的にはいいはずなのですが、下記ではうまくいきません。エラーになり何も表示されません。 どこが悪いかご指摘頂けませんでしょうか? <?php <?php IF ($my_volume['i5_volume'] >= 1) {echo " <img src=\"./abc.png\" onclick="location.href='sell.php?e2_id=$_price['e2_id'];&time= $time = date('G'); echo $time;'" /> ";} ELSE {echo "";} ?>

    • ベストアンサー
    • PHP
  • 検索結果それぞれにリンク

    echo '<strong>会社名:</strong> ' . $row['name'] . '<br />'; と書けば 株式会社日産 田中商店 株式会社オシイ不動産 とかでます。 echo '<strong>会社名:</strong> <a href="a.html">' . $row['name'] . '</a><br />'; と書けばリンクは貼れますが当然全てa.htmlへのリンクです。それぞれリンク先を分けるには、どうすれば良いですか??

    • ベストアンサー
    • PHP
  • データ一覧時に行の配色を交互にするには

    phpでmysqlのデータを一覧で表示した際に、 行の配色が交互にされるようしたいのです。 http://new.realestate.yahoo.co.jp/realestate/03/13/13101/ のような感じです。 Dreamweaverを使用して製作しているのですが、 <?php do { ?> <tr bgcolor="#FFFFFF"> <td><?php print_r($array);?><a href="master.php?ID=<?php echo $row_restaurant['ID']; ?>" target="_blank"><?php echo $row_restaurant['NAME']; ?></a></td> <td><?php echo mb_strimwidth($row_restaurant['LOCATION'],0,40);?>...</td> <td><?php echo $row_restaurant['GENRE']; ?></td> <td><?php echo $row_restaurant['STATION']; ?></td> <td><?php echo mb_strimwidth($row_restaurant['PRICE'],0,40);?>...</td> </tr> <?php } while ($row_restaurant = mysql_fetch_assoc($restaurant)); ?> </table> <?php } // Show if recordset not empty ?> リピートの部分は上記のような形になっています。 恐らく、<tr bgcolor="#FFFFFF"> の部分にスクリプトを入れると思うのですが、arrayで配列を出そうとしても[0]としか出ません。 どのようにすれば宜しいでしょうか。。。 QNo.1299295を参照して実行してみましたが、うまくいきません。 どなたかご教授願います。宜しくお願い致します。

    • ベストアンサー
    • PHP
  • ページ間の値の受け渡しについて

    緊急でPHPを用いて開発しなければならず、値の受渡し方法が調べても 結果がうまく出来ないために教えて下さい。 説明がうまくできないので、ソースの一部を下記に記載しております。 【keikaku.php】 <?php $link = DB接続 $query = "SELECT (1) , (2) , (3) FROM KEIKAKU WHERE 営業所= '東京'"; $res_result = mysql_query($query,$link); echo ("<form action='keikaku_input.php' method='POST'>"); while($row = mysql_fetch_array($res_result)){  echo ("<table border=1>");  echo ("<tr>");  echo ("<td><input type='radio' name='name' value=''></td>");  echo ("<td>");  echo $row['(1)'];  echo ("</td><td>");  echo $row['(2)'];  echo ("</td><td>");  echo $row['(3)'];  echo ("</td>");  echo ("</tr>"); } echo ("<input type='submit' value='次へ'>"); echo ("</form>"); ?> というSQLで一覧を表示させて、対象行のラジオボタンが選択されると (1)と(2)の値を使い、【keikaku_input.php】で更に別のSQLを実行後に 結果を表示させる事を行ないたいのです。 【keikaku.php】→【keikaku_input.php】へ(1)と(2)の値を渡したい場合 はどのようにすれば良いかご教授願えませんでしょうか?

    • ベストアンサー
    • PHP

専門家に質問してみよう