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

変数の受け取り方

created: 2003-10-01 11:06 | modified: 2003-10-02 18:03 | reply: 5

[724] 変数の受け取り方

user: ピレ | created: 2003-10-01 11:06
register_globals=Off
の場合のFORMにおける下記のような変数名を$_POSTなどで受け取る場合どうやったらいいか分かりません。ご存知の方ご教示頂ければ幸甚です。

<INPUT TYPE="text" NAME="junji<?php echo $i+1; ?>" MAXLENGTH=20 SIZE=25 VALUE="<?php echo htmlspecialchars($array_junji[$i]); ?>">
reply: 725 726 返信 編集 削除

[725] 変数名が変化する変数の受け取り方

user: ゆうじ | created: 2003-10-01 11:46
受け取る側のスクリプトで $i の値を特定できるのなら
$I = $i + 1;
$_POST["junji{$I}"]

で、いかがでしょう。
Parent: 724  reply: 733 返信 編集 削除

[733] 再度ご質問

user: ピレ | created: 2003-10-02 13:38
せっかく頂いたアドバイスを試してみましたがまだ上手くいっていません。自分の知識不足が原因かと思いますがサイトを完成させたいので是非とも頑張りたいと思っています。
実はもとのスクリプトがあるのですがそれがgloval_register=Onが前提になっているためどうしてもセキュリティ上Offの設定をベースとしたスクリプトに変えたいと考えております。

そこで再度質問なのですが、下記ファイル(sample.php)内の
NAME="codenum<?php echo $i+1; ?>"
という変数名を自分自身にジャンプして受け取る場合に下記AA(元の文)とBB(アドバイスを基にした文)は同じと見ていいでしょうか?

//AA(register_glovals=Onの場合)
// $temp = "codenum" . $i;
// $codenum = $$temp;
// $codenum = stripslashes(trim($codenum));
////////////////////////////

//BB(register_glovals=Offの場合)
$codenum=$_POST["codenum{$i}"];
$codenum=stripslashes(trim($codenum));
/////////////////////////

<FORM ACTION="sample.php" METHOD="POST">
<INPUT TYPE="text" NAME="codenum<?php echo $i+1; ?>" MAXLENGTH=4 SIZE=6 VALUE="<?php echo htmlspecialchars($array_codemun[$i]); ?>">

</FORM>

宜しくお願い致します。
Parent: 725  reply: 734 返信 編集 削除

[734] テストスクリプト

user: ゆうじ | created: 2003-10-02 14:58
元は可変変数だったんですね。
同じと見てよいのか判断できませんでしたので
以下のようなテストスクリプトを書いてみました。

コメントアウト位置を変えて確かめたところ
AA は register_glovals=On の場合のみ、
BB は register_glovals の設定の関わらず、
フォームに入力された値を表示しました。

register_glovalsの設定による違いを除き
同じ結果が得られたように思います。

Exp)test.php
<?php
$i = 5; // ひとまず5に決めといてっと

// AA (register_glovals=Onの場合)
$temp = "codenum" . $i;
$codenum = $$temp;

// BB (register_glovals=Offの場合)
//$codenum = $_POST["codenum{$i}"];

?>
<html>
<body>
<p><?php echo $codenum; ?></p>
<hr>
<form action=test.php method=post>
<input type=text name=codenum5 size=20>
<input type=submit value=TEST>
</form>
</body>
</html>

> 上手くいっていません

とのことですが、
エラーが出るとか何も表示されないとかなどのように、
どう上手くいってないのか、
現状&現象をお知らせいただいたほうが
知恵がわくかもしれません。
Parent: 733  reply: 735 返信 編集 削除

[735] テストスクリプトについて

user: ピレ | created: 2003-10-02 18:03
標記試したところ$_POST["codenum{$i}"]の方で$codenumの値が表示できました。
これでしばらくは試行錯誤が出来ると思います。試行錯誤の結果(またはお問い合わせ)を是非ご報告させて頂きたいと思います。
Parent: 734  返信 編集 削除

[726] こんなんもあります

user: hamaji | created: 2003-10-01 12:52
http://www.php.net/manual/ja/faq.html.php#faq.html.arrays
を参考にしてください。私はいつもこれを使ってます。
<input type="text" name="sample1" ...
<input type="text" name="sample2" ...
というのは
<input type="text" name="sample[]" ...
<input type="text" name="sample[]" ...
とすることで0から始まる配列として扱えます。

ただし
echo $_POST['sample'];
などとするとArrayと結果が返ってきますのでご注意を。

受け取る側ではfor()やforeach()構文を使用することで取得します。
Parent: 724  返信 編集 削除
スレッド表示 | フラット表示〕 全トピック 920 件中 789 番目 次≫ ≪前
ページの一番上へ
Googleグックマークに登録 Yahooグックマークに登録 livedoorクリップに登録 @niftyクリップに登録 はてなブックマークに登録 deliciousに登録 Buzzurlに登録 FC2ブックマークに登録
最近更新された掲示板トピックス
管理人Blog
Yahoo Search

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