- ベストアンサー
<A href ~で複数の値を渡したい
- ODBC経由でレコードを取得して表示させた後、リンクを押された際に状態を変更する方法について教えてください。
- データベースから取得した情報をテーブル形式で表示し、リンクをクリックすることで状態を変更できるようにしたいです。
- リンクを複数個設置する方法やボタンを使用して状態変更を行う方法について教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
補足の内容、了解です。 変数で渡そうとしている内容がサーバ側での設定を想定していたので IDと同じような感じにしていました。 また、IDが大文字となっていたのでaの方もあわせて大文字としていましたが、 その点の説明が抜けていたようです。すみません。 では補足いただいた内容に合わせて渡したいaを設定してみましょう。 aが1固定の場合だと下のようになります。 print("<td><a href= \"hoge.php?ID=".$row["ID"]."&A=1\">1に状態変更</a></td>"); これでサーバ側でのIDでのとり方と同じようにしてAでやれば1が取れるようになります。 PHPの5.2.6でも通用するかは設定によりますが $_REQUEST[ID] でIDの値が、$_REQUEST[A] でAの値がとれていたら正解です。 $_GET[ID] だったり、$ID だったりするかもなので調査要です。 では、ついでのついでに値が固定、中身も似ているなら for ループを追加して、 もう一歩先の応用ができそうないじくりをいれてみましょう。 余談なので上の状態のでおしまいにしてももちろんOK。 //リンクを状態変更1から4まで4つ並べます。 for( $lpcnt00 = 1; $lpcnt00 <= 4; $lpcnt00 ++) { print("<td><a href= \"hoge.php?ID=".$row["ID"]."&A=".$lpcnt00."\">".$lpcnt00."に状態変更</a></td>"); } クォーテーションの¥マーク有り無しやドットのつけ方は慣れても分かりにくく、 その慣れ方もどうするのが良いのか分かり難いものです。 自分なりの解読法を構築するしかないのかもしれませんね。 作り始めの段階なら 1.HTMLをベタで書いて。 2.クォーテーションを¥マーク付きに置換して。 3.PHPの文に変換して。 とやれば良さそうですが、いったん出来上がったものを編集するとなると このクォーテーションがHTML側のものなのかPHP側のものなのかがパッと見判らない。 その辺りをサポートしてくれるエディタもあるようですが、 慣れないことにはそのエディタの表示もなんじゃらほい。 でも大丈夫。必要な情報ならきっと、情報の側からもアプローチがありますよ。
その他の回答 (1)
- hisappy
- ベストアンサー率46% (184/392)
単純に値を持っていければ良いというのであれば、 質問文の内容を中途半端に引用して編集してみると //この下が問題の行 print("<td><a href= \"hoge.php?ID=".$row["ID"]."&A=".$a."\">1に状態変更</a></td>"); //あとリンクを状態変更4まで3つ並べます print("</tr>\n"); のように、IDの後ろに持っていかせたいパラメータを&で引っ付ければ FORM タグの method で GET を指定した場合の形式で渡ると思います。 (ちなみにボタンの submit で飛ばすのが POST の形式。) その POST の形式版だとこんな感じ。 //この下が問題の行 print("<td>"); printf("<form name=\"\" method=\"post\" action=\"hoge.php\">"); printf("<input type=\"hidden\" name=\"ID\" value=\"".$row["ID"]."\">"); printf("<input type=\"hidden\" name=\"a\" value=\"".$a."\">"); printf("<input type=\"submit\" value=\"1に状態変更\">"); printf("</form>"); printf("</td>"); //あとリンクを状態変更4まで3つ並べます print("</tr>\n"); JavaScript を使っても良くて、画像でボタンを表示させたいなら 上で submit となっている input タグの部分を printf("<img src=\"hoge1.jpg\" onClick=\"hoge.php?ID=".$row["ID"]."&A=".$a."\">"); みたいにすればできるのではないでしょうか。 ただ、動作確認したわけでもないですし、タグの内容などもうろおぼえなので このままでは動作しない可能性大だったりもしますが 調査するのに必要な要素はひとまずいれたつもりですので 今回はこの辺りにて失礼します。
補足
hisappyさんありがとうございます。 ?ID=".$row["ID"]."&A=".$a."\" まさにこの部分の書き方なんですが、本当に記述の仕方だけ分からないんだと思います。初心者ですみません。 ブラウザの下にA= が現れるようになったので持って行ってくれる気があるみたいですが、$aが0なので、$aにどこかで1を入れておかないといけないのでしょうか? ここは1と決まっているので、 ?ID=".$row["ID"]."&A="1"\" としても上手くいかないのです(T_T) どうクォーテーションしたものやら、どうドットつけたらいいやら。
お礼
hisappyさん、根気よく付き合ってくださってありがとう ございました。¥に振り回されていたのですが、ひとつ 多かったり、クォーテーションを取ったり、全部に¥つけたりと 色々したのですが、ニアミスで行き詰っていました。 PHPがうまく受け取ってくれました! しかも残りのリンクのForまで・・・これはまた後日ためして 勉強させていただきます。 ありがとうございました。また今後ともよろしくお願いいたします。