
お世話になります。
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です。よろしくお願いします。
No.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側のものなのかがパッと見判らない。
その辺りをサポートしてくれるエディタもあるようですが、
慣れないことにはそのエディタの表示もなんじゃらほい。
でも大丈夫。必要な情報ならきっと、情報の側からもアプローチがありますよ。
hisappyさん、根気よく付き合ってくださってありがとう
ございました。¥に振り回されていたのですが、ひとつ
多かったり、クォーテーションを取ったり、全部に¥つけたりと
色々したのですが、ニアミスで行き詰っていました。
PHPがうまく受け取ってくれました!
しかも残りのリンクのForまで・・・これはまた後日ためして
勉強させていただきます。
ありがとうございました。また今後ともよろしくお願いいたします。
No.1
- 回答日時:
単純に値を持っていければ良いというのであれば、
質問文の内容を中途半端に引用して編集してみると
//この下が問題の行
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)
どうクォーテーションしたものやら、どうドットつけたらいいやら。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
POSTされたかどうか確かめる方...
-
逆順表示したい?
-
【C#】DataGridViewの最大列数...
-
Dosブロンプトでtabを出力したい
-
「取得先」という表現について
-
セッション変数にパスワードを...
-
バッチファイルでpingの結果を...
-
C言語でシステム日付との差を...
-
findstrのerrorlevel
-
shシェルスクリプト 空白行の...
-
wordの差し込み印刷で文字...
-
PHPでログイン人数を制限したい
-
PHPのセッション有効期限について
-
小数点以下0の非表示
-
excel access連携 このテーブル...
-
WordでExcelデータを差込...
-
Excel VBA:特定の文字列以降(...
-
エラーの理由が分りません。Pri...
-
DTOとEntityの差は何ですか。
-
バッチファイルで、全てのウィ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
printの出力結果を変数に代入す...
-
以下のプログラムで質問します。
-
whileループの中でフォーム入力...
-
はじめまして。
-
関数の実行ができません
-
phpスクリプトについて
-
文字列の比較がうまくいきません。
-
PHPで変数についての質問です
-
WEB経由のPHPによるSQLServer接...
-
関数戻り値が連想配列の場合
-
【PHP】条件が一致したとき...
-
「次の10件を表示する」のよ...
-
以下エラーメッセージ解決法は
-
日付の比較について
-
CGIで何%の指示の仕方
-
テーブルに送信ボタンをつける
-
$_SERVER["QUERY_STRING"]の仕...
-
「#表を定義し外枠サイズ2を定...
-
PHPの質問です : -> 等
-
郵便番号と一致するか調べるプ...
おすすめ情報