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

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

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

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Smarty

Smartyは、PHPアプリケーションで使用されるテンプレートエンジンです。

HTML

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

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

1回答

390閲覧

Smartyの{foreach}で要素が正しくループしない

saitou_san

総合スコア32

PHP

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Smarty

Smartyは、PHPアプリケーションで使用されるテンプレートエンジンです。

HTML

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

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2022/10/20 04:43

Smartyの{foreach}でループさせて表を表示させたいのですが上手く表示されません。
下がtplファイル(省略版)です。

HTML(.tpl)

1{if ($data) } 2//省略 //<div class=・・・><div class=・・・></div></div>がここに移動 3<table border="1"> 4<tr><th>外泊願ID</th><th>承認/非承認</th>・・・</tr> 5<?php 6{$i=1}; 7?> 8{foreach item=item from=$data} 9 10<tr bgcolor="#b0c4de" class= {$item.gaihaku_id} > 11<td>{$item.gaihaku_id}</td> 12//省略 13</tr> 14 15<div class=" {$item.gaihaku_id|cat:'overlay'} back-overlay-off"> 16<div class=" {$item.gaihaku_id|cat:'overlay'} overlay-off"> 17<tr> 18 <table border="2" style="border-collapse: collapse" width="85%" align="center"> 19 <tr> 20 <td rowspan="2" bgcolor="#00f000" width="5%">氏名</td> 21 //省略 22 </tr> 23 </table> 24 25 <table border="2" style="border-collapse: collapse" width="85%" align="center"> 26 <tr> 27 <td bgcolor="#00f000" width="5%">日程</td> 28 //省略 29 </tr> 30 </table> 31 32 <table border="2" style="border-collapse: collapse" width="85%" height="20%" align="center"> 33 <tr> 34 <td rowspan="2" bgcolor="#00f000" width="5%">理由</td> 35 //省略 36 </tr> 37 </table> 38 <button id="close-btn" class="overlay-event" type=button>Close</button> 39 </div> 40</div> 41 42 43<?php 44{$i++}; 45?> 46{/foreach} 47</table> 48<input type="hidden" name="i" value={$i}> 49{/if}

今までは<div class=・・・><div class=・・・></div></div>の部分を入れていなくて正常に表が出力されていたのですが、入れた瞬間におかしくなりました。
コンソールの要素を確認したところ次のようなおかしい点が見つかりました。
<div class=・・・><div class=・・・></div></div>が何故か最初の<table>に上に移動している。
・勝手に</table>が追加されtableが閉じる
直し方がわからないのでだれか詳しい方教えてください

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

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

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

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

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

tanat

2022/10/20 06:43

> コンソールの要素を確認したところ次のようなおかしい点が見つかりました。 開発者ツールから確認出来る要素はブラウザが勝手に補完した後のものなので、今回の用途での確認には向きません。 右クリック→ソースを表示でHTMLソースを直接表示して確認されることをお勧めします。
guest

回答1

0

ベストアンサー

tableの直下にdivは文法上できません。下記リンクの「許可されている内容」を確認してみてください。
同じく、trの直下にtableも文法上おかしいです。1行の区間であってもtr>td>tableにしましょう。
あと編集の都合かもしれませんが</tr>が不足しています。

組み替え方法については全体像(行/列の数や実現したいレイアウトなど)を提示された上で、HTMLの質問として再度質問されることをお勧めします。

<table>: 表要素 - HTML: HyperText Markup Language | MDN】
https://developer.mozilla.org/ja/docs/Web/HTML/Element/table

<tr>: 表の行要素 - HTML: HyperText Markup Language | MDN】
https://developer.mozilla.org/ja/docs/Web/HTML/Element/tr

投稿2022/10/20 04:54

kei344

総合スコア69625

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.31%

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

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

質問する

関連した質問