スレッド表示 | フラット表示〕 全トピック 920 件中 507 番目 次≫ ≪前

変数の受け渡し

created: 2004-12-09 23:42 | modified: 2004-12-13 19:03 | reply: 6

[1986] 変数の受け渡し

user: toto | created: 2004-12-09 23:42
こんにちは、
変数が呼び込めなくて困っています。

過去ログ1916を参考にリンクを加えました。

<?php

while($rec = mysql_fetch_array($result)) {

?>
<tr>
<td><?php echo $rec['id']; ?></td><td><a href=<?php echo bbs/index.php ?>><?php echo $rec['name']; ?></a></td>
</tr>
<?php

}

?>

クリックした変数をdbにかけてセレクトしたいのですが、、リンク先のスクリプトに

echo $_POST['name'];

としても、エラーもないのですが、表示もしません。

クリックした変数をどのように認識するのか教えて下さい。
reply: 1987 返信 編集 削除

[1987] var_dump($_REQUEST)

user: ゆうじ | created: 2004-12-10 00:17
こんばんわ。

<form method="post" action="hoge.php">
<input type="text" name="name" />
<input type="submit" value="押せ" />
</form>

こんな具合にフォームからきちんと method="post"で送信されていれば、

echo $_POST['name']; で受け取れないとは考えにくいのですが・・・

echo $_POST['name']; ではなく、
次のコードをスクリプトのはじめに挿入してお試しください。
スクリプトが受け取った変数すべてが表示されます。
何かわかるかも。

<?php
echo '<pre>';
var_dump($_REQUEST);
echo '</pre>';
exit;
?>


別件ですが、bbs/index.php のところ、
'bbs/index.php' と、シングル(又はダブル)クオーテーションではさむか
<a href="bbs/index.php"> としてもいいと思います。
Parent: 1986  reply: 1991 返信 編集 削除

[1991] Re.var_dump($_REQUEST)

user: toto | created: 2004-12-10 19:24
ありがとうございます。


> <form method="post" action="hoge.php">
> <input type="text" name="name" />
> <input type="submit" value="押せ" />
> </form>
>
> こんな具合にフォームからきちんと method="post"で送信されていれば、
>
> echo $_POST['name']; で受け取れないとは考えにくいのですが・・・


説明がまずくてすみません。
上のソースは、問題なく走ります。
データの入力はできました。データーベースにもちゃんとおさまり、それは、過去ログ1916で、紹介されたスクリプトでも、確認して、データーベースに収まっているデーターを一覧表にしてくれました。
次に、この表に、リンクを張って、その部分をクリックすると、新たなページがデーターベースから、そのクリックしたデータに基づいて、情報を表示するという操作をしたいのです。

 ところが、クリックする文字は、表示上は、個々のデータなのですが、プログラム上は、While文で繰り返し表示された変数echo $rec['name'です。



> echo $_POST['name']; ではなく、
> 次のコードをスクリプトのはじめに挿入してお試しください。

ひょっとして、フォームなし、サブミットボタンなしで、a hrefで、つないだ場合、
> echo $_POST['name'];
は、呼び込めないのでしょうか?

> スクリプトが受け取った変数すべてが表示されます。
> 何かわかるかも。
>
>
> <?php
> echo '<pre>';
> var_dump($_REQUEST);
> echo '</pre>';
> exit;
> ?>
>


これは、初めて知りました。早速使います。


>
> 別件ですが、bbs/index.php のところ、
> 'bbs/index.php' と、シングル(又はダブル)クオーテーションではさむか
> <a href="bbs/index.php"> としてもいいと思います。

おっしゃるとおりです。オリジナルスクリプトは<a href=$home> だったため、置き換えたさいに、クオーテーションを忘れました。
Parent: 1987  reply: 1992 返信 編集 削除

[1992] Re やっぱり 拾えない変数

user: toto | created: 2004-12-10 23:58
> >
> >
> > <?php
> > echo '<pre>';
> > var_dump($_REQUEST);
> > echo '</pre>';
> > exit;
> > ?>
> >


<a href=$home>で指定したページに上のスクリプトのみのせたのに、なぜか関連のないページのおそらくクッキーだと思うのですがそれをひらって来ます。

たとえばこちらの今、書いているBBSのツリー表示にしたとき、親記事のタイトルの左にある赤い押しピンの画像にリンクがはられているのですが、同じ画像でも画像をクリックしたとき、ちゃんとそのクリックした記事内容のみをファイルからひろってきます。

おそらく表示するときは、<a href="'.$PHP_SELF.'?mode=resmsg&no='.$no.'">
こんな具合で、番号の変わりに画像を置いておられるのだと思います。
Parent: 1991  reply: 1993 返信 編集 削除

[1993] POST と GET

user: ゆうじ | created: 2004-12-11 11:23
[1991]
> ひょっとして、フォームなし、サブミットボタンなしで、a hrefで、つないだ場合、
> > echo $_POST[\'name\'];
> は、呼び込めないのでしょうか?

[1992]
> おそらく表示するときは、<a href=\"\'.$PHP_SELF.\'?mode=resmsg&no=\'.$no.\'\">
> こんな具合で、番号の変わりに画像を置いておられるのだと思います。

おっしゃるとおり、この掲示板では
URLパラメータの mode と num の値によって
表示方法を切り替える仕組みになっています。

URLパラメータの値を、
スクリプト側で参照するには
$_POST ではなく、$_GET を使います。

ttp://www.sound-uz.jp/bbs/index.php?mode=res&num=1986

↑このURLだと、

echo $_GET['mode'];
echo $_GET['num'];

こんな具合で参照することになります。


POST と GET の使い方で少々混乱されてるようですので、
以下を参考に考え方を整理してみてください。

■ 値の受け渡し
http://www.sound-uz.jp/php/note/gpcRequest

↑ここには書いてませんが、
もし、$_POST と $_GET を区別せず取り扱いたいならば、
$_POST や $_GET の代わりに $_REQUEST を使うと良いです。
Parent: 1992  reply: 1996 返信 編集 削除

[1996] 定数ならできたのですが、

user: toto | created: 2004-12-13 18:35
<a href=<?php echo 'index.php?var1=toto' ?>>

で リンク先のスクリプトに
echo $_GET['var1'];
をすると ちゃんとtotoをかえしてくれるのですが

var1='.$rec['name'].'

と変数にすると
$rec['name']はからっぽになってしまいます。
<a href="'.$PHP_SELF.'?mode=new&num='.$no.'">

このタグの中の
?mode=mode=new&num=1993

この部分、=が二度使用されていることと&の
使用が$noを1993と受けわたせることと関係がありますか?

あるいは、わたしが読みこんでいる変数がループでdbから読みこんでいる

while($rec = mysql_fetch_array($result))

であることが原因でしょうか?
何度も御手数をおかけしてすみません。
Parent: 1993  reply: 1997 返信 編集 削除

[1997] できました。

user: toto | created: 2004-12-13 19:03
実際のスクリプトは解り易く?するためつぎの様に別の変数で、この変数はループより以前でデクレアしてました。
$link='index.php?var1='.$rec['name'].' ';

<a href=$link>

ところがこちらに書き込む際に変数を直接、タグの中に挿入して質問の内容がわかってもらいやすく書いているつもりでした。

ふと、スクリプトが長くなってもループからよぶ変数をループなかに入れないと、意味のないことに気づいて、質問させてもらったスクリプトそのものを使ってみたら見事、うごきました。

while($rec = mysql_fetch_array($result)) {}

の {}の中に
<a href=<?php echo 'index.php?var1='.$rec['name'].' ' ?>><?php echo $rec['name']; ?></a>

とすると、index.phpに

echo '<pre>';
var_dump($_REQUEST);
echo '</pre>';

でも、

echo $_GET['var1'];

どちらでも変数var1はクリックしたnameを返してくれました。

ありがとうございました。
Parent: 1996  返信 編集 削除
スレッド表示 | フラット表示〕 全トピック 920 件中 507 番目 次≫ ≪前
ページの一番上へ
Googleグックマークに登録 Yahooグックマークに登録 livedoorクリップに登録 @niftyクリップに登録 はてなブックマークに登録 deliciousに登録 Buzzurlに登録 FC2ブックマークに登録
最近更新された掲示板トピックス
管理人Blog
Yahoo Search

最近更新したNote
PHPマニュアル
今日のブックマーク
PHPマニュアル関数検索
関数名を入力し検索ボタンをクリック↑