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

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

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

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

HTML

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

Q&A

解決済

3回答

572閲覧

phpでforでループするtrタグを挟む場合

maguzo

総合スコア57

PHP

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

HTML

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

0グッド

0クリップ

投稿2019/05/20 13:55

編集2019/05/20 14:33

下記のように複数行のtrタグのラジオボタンを埋め込み、まとめてpostしたいと考えております。
そのためにforループの外側でformタグで囲んでいるのですが、コードを書いた後に実際ブラウザのソースを
見ると

<form>..</form> <tr></tr> <tr></tr> <tr></tr> のように意図した構造になってくれません。 <form> <tr></tr> <tr></tr> <tr></tr> </form> とならない問題点と解決方法についてアドバイスを願います。

php

1 <form class="" action="xxx.php" method="post"> 2 <?php for ($i=0; $i <count($sports) ; $i++):?> 3 <tr> 4 <td style="width:5%;"><?php echo $i+1?></td> 5 <td style="width:15%;"><?php echo $sports[$i]?></td> 6 <td style="width:3%;"><a href="<?php echo 'xxx'.$url[$i].'/'?>" target="_blank"><i class="fas fa-link"></i></a></td> 7 <td style="width:17%;"><?php echo $price[$i]?></td> 8 <td class="mim"><input type="radio" name="<?php echo "mim_".$i ?>" value="YES">YES<br><input type="radio" name="<?php echo "mim_".$i ?>" value="NO" checked="checked">NO</td> 9 <td class="kob">-</td> 10 <td class="tats">-</td> 11 <td class="ter">-</td> 12 <td class="sak">-</td> 13 <td class="ega">-</td> 14 </tr> 15 <?php endfor;?> 16</form>

html

1<table> 2 <tr> 3 <th style="width:5%;">#</th> 4 <th style="width:15%;">種目</th> 5 <th style="width:5%;">リンク</th> 6 <th style="width:15%;">チケット代金</th> 7 <th>mim</th> 8 <th>kob</th> 9 <th>taus</th> 10 <th>tera</th> 11 <th>sak</th> 12 <th>egg</th> 13 14 </tr> 15 16 <?php 17 $sports=array( 18 "水泳/競泳","水泳/飛込","水泳/水球","水泳/シンクロ","陸上/トラック","陸上/フィールド","陸上/混成","陸上/混成", 19 "アーチェリー","バトミントン","野球","ソフト","バスケ/5X5","バスケ/3X3","ボクシング","カヌー","自転車", 20 "馬術","フェンシング","サッカー","ゴルフ","体操","新体操","トランポリン","ハンドボール","ホッケー", 21 "柔道","空手","近代五種","ボート","ラグビー","セーリング","射撃","スケボー","スポーツクライミング","サーフィン", 22 "卓球","テコンドー","テニス","トライアスロン","バレーボール","ウェイトリフティング","レスリング" 23 );?> 24 25 <?php 26 $url=array( 27 "swimming","swimming","swimming","swimming","athletics","athletics","athletics","athletics", 28 "archery","badminton","baseball-softball","baseball-softball","basketball","basketball","boxing","canoe","road-cycling", 29 "equestrian","fencing","football","golf","gymnastics","gymnastics","gymnastics","handball","hockey", 30 "judo","karate","modern-pentathlon","rowing","rugby-sevens","sailing","shooting","skateboarding","sport-climbing","surfing", 31 "table-tennis","taekwondo","tennis","triathlon","volleyball","weightlifting","wrestling" 32 );?> 33 34 <?php 35 $price=array( 36 "<ul><li>予選:¥5,800-¥37,500</li><li>決勝:¥11,800-¥108,000</li></ul>",//水泳/競泳 37 "<ul><li>予選:¥3,500-¥10,000</li><li>準決勝:¥5,000-¥12,500</li><li>決勝:¥8,000-¥30,500</li></ul>", 38 "<ul><li>予選:¥3,000-¥14,500</li><li>決勝:¥5,000-¥18,000</li></ul>", 39 "<ul><li>予選:¥4,000-¥13,800</li><li>決勝:¥5,800-¥45,000</li></ul>", 40 "<ul><li>予選:¥3,000-¥13,500</li><li>決勝:¥4,000-¥130,000</li></ul>", 41 "<ul><li>予選:¥3,000-¥13,500</li><li>決勝:¥4,000-¥130,000</li></ul>", 42 "<ul><li>予選:¥3,000-¥13,500</li><li>決勝:¥4,000-¥130,000</li></ul>", 43 "<ul><li>予選:¥3,000-¥13,500</li><li>決勝:¥4,000-¥130,000</li></ul>",//陸上/混成 44 "<ul><li>予選:¥3,000</li><li>決勝:¥7,000</li></ul>",//アーチェリー 45 "<ul><li>予選:¥4,000-¥21,000</li><li>決勝:¥8,000-¥45,000</li></ul>",//バトミントン 46 "<ul><li>予選:¥4,000-¥45,000</li><li>決勝:¥10,000-¥67,500</li></ul>",//野球 47 "<ul><li>予選:¥3,500-¥18,000</li><li>決勝:¥7,500-¥25,500</li></ul>",//ソフト 48 "<ul><li>予選:¥5,800-¥72,000</li><li>決勝:¥18,800-¥108,000</li></ul>",//バスケ 5*5 49 "<ul><li>予選:¥3,000-¥16,000</li><li>決勝:¥9,000-¥18,000</li></ul>",//バスケ 3*3 50 "<ul><li>未定</li></ul>",//ボクシング 51 "<ul><li>予選:¥3,000-¥5,500</li><li>決勝:¥5,000-¥10,000</li></ul>",//カヌー 52 "<ul><li>予選:¥2,500-¥5,500</li><li>決勝:¥5,000-¥14,500</li></ul>",//自転車 53 "<ul><li>予選:¥3,000-¥6,500</li><li>決勝:¥5,500-¥16,000</li></ul>",//馬術 54 "<ul><li>予選:¥3,000-¥7,500</li><li>決勝:¥6,500-¥11,500</li></ul>",//フェンシング 55 "<ul><li>予選:¥3,000-¥9,800</li><li><li>準決等:¥5,800-¥30,500</li>決勝:¥9,800-¥67,500</li></ul>",//サッカー 56 "<ul><li>予選:¥7,000</li><li>決勝:¥10,00</li></ul>",//ゴルフ 57 "<ul><li>予選:¥4,000-¥25,500</li><li>決勝:¥11,800-¥72,000</li></ul>",//体操 58 "<ul><li>予選:¥4,000-¥12,000</li><li>決勝:¥5,800-¥36,000</li></ul>",//新体操 59 "<ul><li>決勝:¥5,500-¥16,000</li></ul>",//トランポリン 60 "<ul><li>予選:¥3,500-¥12,800</li><li>決勝:¥7,500-¥20,000</li></ul>",//ハンドボール 61 "<ul><li>予選:¥2,500-¥9,500</li><li>決勝:¥6,000-¥10,000</li></ul>",//ホッケー 62 "<ul><li>予選:¥4,000-¥15,500</li><li>決勝:¥10,000-¥54,000</li></ul>",//柔道 63 "<ul><li>予選:¥3,500-¥8,000</li><li>決勝:¥5,500-¥12,800</li></ul>",//空手 64 "<ul><li>予選:¥2,500</li><li>決勝:¥2,500-¥4,000</li></ul>",//近代ごしゅ 65 "<ul><li>予選:¥3,000-¥5,500</li><li>決勝:¥5,000-¥9,500</li></ul>",//ボート 66 "<ul><li>予選:¥3,500-¥16,000</li><li>決勝:¥7,500-¥25,500</li></ul>",//ラグビー 67 "<ul><li>予選:¥3,000</li><li>決勝:¥5,500</li></ul>",//セーリング 68 "<ul><li>予選:¥2,500</li><li>決勝:¥5,500</li></ul>",//射撃 69 "<ul><li><li>決勝:¥11,500</li></ul>",//スケボー 70 "<ul><li>予選:¥3,000-¥5,000</li><li>決勝:¥6,000-¥12,500</li></ul>",//くらいみんぐ 71 "<ul><li><li>決勝:¥3,000</li></ul>",//サーフィン 72 "<ul><li>予選:¥3,500-¥14,500</li><li>決勝:¥8,000-¥36,000</li></ul>",//卓球 73 "<ul><li>予選:¥3,000-¥5,500</li><li>決勝:¥5,000-¥9,500</li></ul>",//テコンドー 74 "<ul><li>予選:¥4,000-¥24,500</li><li>決勝:¥10,000-¥54,000</li></ul>",//テニス 75 "<ul><li><li>決勝:¥4,000-¥8,000</li></ul>",//トライアスロン 76 "<ul><li>予選:¥4,000-¥30,500</li><li>決勝:¥10,000-¥54,000</li></ul>",//バレーボール 77 "<ul><li>予選:¥2,500-¥5,000</li><li>決勝:¥7,000-¥12,800</li></ul>",//ウェイリフティング 78 "<ul><li>予選:¥4,000-¥13,500</li><li>決勝:¥8,000-¥45,000</li></ul>",//レスリング 79 80 );?> 81 <form class="" action="xxx.php" method="post"> 82 <?php for ($i=0; $i <count($sports) ; $i++):?> 83 <tr> 84 <td style="width:5%;"><?php echo $i+1?></td> 85 <td style="width:15%;"><?php echo $sports[$i]?></td> 86 <td style="width:3%;"><a href="<?php echo 'https://tokyo2020.org/jp/games/sport/olympic/'.$url[$i].'/'?>" target="_blank"><i class="fas fa-link"></i></a></td> 87 <td style="width:17%;"><?php echo $price[$i]?></td> 88 <td class="mim"><input type="radio" name="<?php echo "mim_".$i ?>" value="YES">YES<br><input type="radio" name="<?php echo "mim_".$i ?>" value="NO" checked="checked">NO</td> 89 <td class="kob">-</td> 90 <td class="tats">-</td> 91 <td class="tera">-</td> 92 <td class="saka">-</td> 93 <td class="egg">-</td> 94 </tr> 95 <?php endfor;?> 96 <div class="posting"><button type='submit' name='action' value='send'>送信</button></div> 97</form> 98 99 100</table>

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2019/05/20 14:00

$sports がどう定義されているかわからないので、第三者が再現しづらいです
退会済みユーザー

退会済みユーザー

2019/05/20 14:01

テストするときにwebブラウザのキャッシュはクリアしていますか?
maisumakun

2019/05/20 14:10

「ブラウザのソース」は開発ツールから確認したものですか?
maguzo

2019/05/20 14:22

はい、Chromeのdeveloper toolから確認いたしております。
退会済みユーザー

退会済みユーザー

2019/05/20 14:49

テスト環境にアップロードやコピーし忘れてはいませんか。
guest

回答3

0

ベストアンサー

<tr>タグは、テーブルの外に書いても正常に動作しません。テーブルとして使いたいのであれば、<tr><table>の中に書いてください。

投稿2019/05/20 14:07

maisumakun

総合スコア145121

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

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

退会済みユーザー

退会済みユーザー

2019/05/20 14:12

それや
maguzo

2019/05/20 14:34

ほとんど生のコードを再掲したのですが、tableタグの中に適切に包含されているのですが、原因がわかりません。。
maisumakun

2019/05/20 16:36

table直下にformは置けません。
guest

0

見たのはブラウザのソースではなくデベロッパーツールに表示されているソースでは?
デベロッパーツールのhtmlはブラウザが構文的な補正をかけたりしているので
「ソースを表示」で出てくる内容と必ず一致するわけではないです。
まずは「ソースを表示」から生ソースを確認すると良いです。

※なぜ補正がかかったかというとmaisumakunさんの回答内容が原因と思います

投稿2019/05/20 14:10

m.ts10806

総合スコア80765

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

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

0

こっちでテストしたコードでは問題は生じていないので、
デバッグ環境でのwebブラウザキャッシュが問題かと。

php

1<?php 2$sports = ['tennis', 'baseball', 'soccer']; 3$price = [2000, 3000, 4000]; 4?> 5 <form class="" action="xxx.php" method="post"> 6 <?php for ($i=0; $i <count($sports) ; $i++):?> 7 <tr> 8 <td style="width:5%;"><?php echo $i+1?></td> 9 <td style="width:15%;"><?php echo $sports[$i]?></td> 10 <td style="width:3%;"><a href="<?php echo 'xxx'.$url[$i].'/'?>" target="_blank"><i class="fas fa-link"></i></a></td> 11 <td style="width:17%;"><?php echo $price[$i]?></td> 12 <td class="mim"><input type="radio" name="<?php echo "mim_".$i ?>" value="YES">YES<br><input type="radio" name="<?php echo "mim_".$i ?>" value="NO" checked="checked">NO</td> 13 <td class="kob">-</td> 14 <td class="tats">-</td> 15 <td class="ter">-</td> 16 <td class="sak">-</td> 17 <td class="ega">-</td> 18 </tr> 19 <?php endfor;?> 20</form>

投稿2019/05/20 14:05

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

maguzo

2019/05/20 14:35

ブラウザのキャッシュもクリアしてのですが、、解決いたしませんでした。。
退会済みユーザー

退会済みユーザー

2019/05/20 14:49

うちで動かした、回答内のコードを実行しても、質問文中で言う <form>..</form> <tr></tr> <tr></tr> <tr></tr> にはならないので、齟齬がないか漏れた情報がないか今度は質問者さんが頑張る番です。
maguzo

2019/05/20 15:06

どうしても齟齬が見当たらなかったのですが、ページのソースの表示では適切な構造になっていることが判明し、懸賞では不適切なタグのとじかたがされていることがわかりました。この点はmts10806様の指摘に合致する点となり、補正がかかっており、不一致が生じている可能性があると考えております。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問