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

値の受け渡し

created: 2005-08-27 17:16 | modified: 2005-08-30 17:00 | reply: 4

[2504] 値の受け渡し

user: けんじ | created: 2005-08-27 17:16
はじめまして、けんじと申します。
3週間程前から勉強始めました初心者です。一応ググッたりしたのですが検索の仕方が悪いせいでしょうなかなかヒットせず、
思うように動作しなく途方にくれております。どうか教えて下さいます様、お願い致します。

タイトルの「値の受け渡し」ですがこれで日本語が合っているかわかりません。

やりたいこと。

forループを使用しINPUT TYPE=TEXTを100回繰り返す。
そのNAMEにユニークな名前を付けたい。
思いついたのがforループで使用している変数$iをNAMEにくっつければいいのではと考えました。
その結果はブラウザのソース表示で確認すると期待通りでした。

ただその次の受け取り方が解りません。

POSTでsubmitして$_POST["name1"];
でもちろん受け取れますが、これをname99まで手書きするの?
ってなところでまたループで処理できないのかなと考えます。

しかしそのループの個所をどのように記述するのかが解りません。

手書きしたらいいといえばいいのですが、もっとスマートに出来るのではとも思います。

以下まとめます。

1,目的はINPUT TYPE=TEXT のnameの名前を一意にしたい。
2,その為の私の考えた筋道は適しているか否か。
3,適しているかどうか別にして、上記のループでの受け取りは可 能なのか否か
4,可能ならばそのソースを教えて欲しい

以上初歩的で申し訳ありませんが(丸投げですが)よろしくお願いします。


環境
OS:WIN2K
PHP:5.0.3
Apache:2.0.53
です。
reply: 2507 返信 編集 削除

[2507] こゆうこと?

user: ach | created: 2005-08-27 20:10
$prefix = "name";
$numberOfInputs = 100;

//フォームの出力
for ($i = 0; $i < $numberOfInputs; $i++) {
$name = $prefix.$i;
echo "<input type=text value='",$name,"'>\n";
//以下適当につづく
}

//POSTデータをループ処理
for ($i = 0; $i < $numberOfInputs; $i++) {
$name = $prefix.$i;
$value = $_POST[$name];
//以下適当につづく
}
いや、foreach使えばいいんだけどさ。これだとinputに記入漏れがあったらエラー出るし。
Parent: 2504  reply: 2512 返信 編集 削除

[2512] 感謝です!

user: けんじ | created: 2005-08-28 15:43
はじめまして、けんじと申します。

ach様ありがとうございます。

イメージ通りとは行かないまでも
参考にさせて頂き、無事動作しました。
感謝します。

独学にて断片的な知識しか無く、また身近に教えて
頂けそうな人もいないし藁にすがる思いで投稿しました。

ところでくだらない質問ですが

> いや、foreach使えばいいんだけどさ。これだとinputに記入漏れがあったらエラー出るし。

foreachって配列をループするんですよね。
なんか今回の事例と関わりあるのでしょうか?

当方現在「基礎PHP」を読み、サンプルで勉強している最中
なんですが、foreachってどんな場合に使えるのかイメージ
出来ません。
Parent: 2507  reply: 2513 返信 編集 削除

[2513] フォームの所で配列にしています。

user: シロウ | created: 2005-08-29 00:33
はじめまして、シロウと申します。
私は以下のようにフォームの所で配列になるようにします。

<input type="text" name="name[]" value="">

<form name="test" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<?php
for ($row=0;$row<100;$row++){
echo '<input type="text" name="name[]" value="">';
}
?>
<input type="submit" name="manip" value="送信" style="width:100px;">
</form>
<?php
if (!empty($_POST['name'])){
foreach ($_POST['name'] as $key=>$value){
echo $key.'='.$value."\n";
}
}
?>

INPUTの名前の後で[]を使うとPHPが配列として受け取ってくれます。
[]の中を空にすると0?の配列が作られて、任意の数値や文字を入れても問題ありません。

http://jp2.php.net/manual/ja/control-structures.foreach.php
http://jp2.php.net/manual/ja/function.array.php
Parent: 2512  reply: 2516 返信 編集 削除

[2516] ありがとうございます

user: けんじ | created: 2005-08-30 17:00
シロウ様、はじめまして
返事ありがとうございます。

やはり、配列に関してもっと理解をしないといけないと分かりました。

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

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