質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

4回答

1715閲覧

テキストフォームのname属性を配列にしてPOST?

退会済みユーザー

退会済みユーザー

総合スコア0

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

1クリップ

投稿2021/05/25 08:40

html

1<form action="input.php" method="post"> 2 <input type="text" name="name[]"> 3 <input type="text" name="name[]"> 4 <input type="text" name="name[]"> 5 <input type="submit" value="入力"></td> 6 </table> 7</form>

これだとできないみたいです。
name[0],[1],[2]にそれぞれ、上から順に入力した文字列を送信したいのですが・・・

受け取りは、

php

1for($i = 0 ; $i < count($_POST[name]); $i++){ 2$name[$i] = $_POST['name[$i]']; 3}

で。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2021/05/25 09:56

miyabi_takatsukさん 記事内容は間違いではないですけど6年前はさすがに古すぎではないかと。。 それに問題はそこではなく 'name[$i]' ですし。
guest

回答4

0

ベストアンサー

こういうコードを書きました(html文法とか無視したひどいコードですが):
ファイル名:340294.php

php

1<?php 2 var_dump($_POST); 3?> 4<form action="340294.php" method="post"> 5 <input type="text" name="name[]"> 6 <input type="text" name="name[]"> 7 <input type="text" name="name[]"> 8 <input type="submit" value="入力"></td> 9 </table> 10</form>

するとwebブラウザではこういう表示になります:
イメージ説明
入力欄にこう入力します:
イメージ説明
入力ボタンを押すと、こうなります:
イメージ説明
っていうふうに、一つ一つ書いたコードの挙動を確認するのが、プログラミングです。

では、コードを改変します。
同じファイル名:340294.php

php

1<?php 2 function h($str) { 3 return htmlspecialchars($str, ENT_QUOTES, 'UTF-8'); 4 } 5 6 for ($i = 0; $i < 3; $i++) { 7 if (isset($_POST["name"][$i])) { 8 echo $i . ' -> ' . h($_POST["name"][$i]); 9 } 10 } 11?> 12<form action="340294.php" method="post"> 13 <input type="text" name="name[]"> 14 <input type="text" name="name[]"> 15 <input type="text" name="name[]"> 16 <input type="submit" value="入力"></td> 17 </table> 18</form>

ただ表示すると、こうなります:
イメージ説明
さっきと同じ入力を行います:
イメージ説明
ちゃんとアクセスできているのが確認できますね。

投稿2021/05/25 09:00

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

文字列」「変数」の段階です。まだ配列は触らないでください。
控えめに見てもあなたにはまだ無理です。

「書いたコードが動かない」という認識だと動くコードは書けません。
単に「動くコードを書けていない」だけです。プログラムは書いたとおりにしか動かない。

最近の質問の感じからすると、var_dump()1つ覚えれればほとんど質問する必要なくなると思うのだけど、試しては如何。

php

1var_dump($_POST); 2$test = "a"; 3var_dump($test); 4var_dump("$test"); 5var_dump('$test'); 6var_dump(<<< EOF 7$test 8EOF 9); 10

ブラウザからのアクセスを想定できるなら、「想定したレイアウトを実現できるHTMLをHTMLだけで組む」のも必須。
入門書だと大抵なぞってる様な内容を飛ばしているような状態なので、今回みたいな疑問が出てきます。
自身が使っているPHPのバージョンの調べ方は分かるか?PHPマニュアルを少しでも確認したか?
振り返ってみてください。

業務レベルになってほしいなんて思ってません。
でも学習でも趣味でもなんでもプログラミングの本質は同じです。
チョットデキルくらいにでもなりたいのでしたら、少しくらい指摘なども耳を貸すようにしてみてください。
指摘は攻撃ではなく、成長のためのアドバイスです。

指摘は攻撃と思ってるうちは同じ質問を繰り返し、同じ指摘を食らい続けるだけです。
どちらがいいですか?

投稿2021/05/25 08:53

編集2021/05/25 10:00
m.ts10806

総合スコア80875

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

これだとできないみたいです。

コード内に</td></table>がありますが、これらに対応する開きタグはどこでしょうか?

特にテーブル関連は、ネストがおかしい場合にタグをテーブルから追い出すなど、予想もしない形にHTMLが変化してしまいますので、<form><input>の対応すら崩れる危険があります。まずはその問題を解決しましょう。

(正しく送れなければ、それを想定した形で受け取ることはおよそ望めません)

投稿2021/05/25 09:00

maisumakun

総合スコア146018

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

そのままでもできなくはないです。
input.php側で以下のようにすると、

$name = $_POST['name'];

$name[0], $name[1], $name[2]に受け取った値がセットされます。

参考: HTML フォームで配列を使用するにはどうすればよいですか?

投稿2021/05/25 08:51

ockeghem

総合スコア11705

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問