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

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

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

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

JavaScript

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

Ajax

Ajaxとは、Webブラウザ内で搭載されているJavaScriptのHTTP通信機能を使って非同期通信を利用し、インターフェイスの構築などを行う技術の総称です。XMLドキュメントを指定したURLから読み込み、画面描画やユーザの操作などと並行してサーバと非同期に通信するWebアプリケーションを実現することができます。

Q&A

解決済

1回答

5939閲覧

tableレイアウトが崩れている原因がわからない

bigin

総合スコア67

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

JavaScript

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

Ajax

Ajaxとは、Webブラウザ内で搭載されているJavaScriptのHTTP通信機能を使って非同期通信を利用し、インターフェイスの構築などを行う技術の総称です。XMLドキュメントを指定したURLから読み込み、画面描画やユーザの操作などと並行してサーバと非同期に通信するWebアプリケーションを実現することができます。

0グッド

1クリップ

投稿2018/01/14 14:45

現在用いてデータベースから引っ張ってきたデータをテーブルに表示させるプログラムを書いています。
OS:MacOSX,開発環境:ローカル

イメージ説明

データを反映させるまではうまくいったのですが、いざ出力してみると画像の通りテーブルが乱れてしまっています。うまく項目を合わせてテーブルを表示させたいですが、原因がわかりません。

原因がわかればご教示いただけますととても嬉しいです。

以下は画像のブラウザを表示しているphpです。なお、includeしているajax.index_data.phpはデータベース接続のためのファイルです。

ajax.indexmain.php

<?php include 'ajax.index_data.php'; ini_set('display_errors',1); ?> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> </head> <body> <script src="http://code.jquery.com/jquery-1.10.1.min.js"></script> <script src="ajax.index.js"></script> <table border="1" id="tbl"> <tr> <td>都道府県</td> <td>市区町村</td> <td>区分</td> <td>合計部数</td> <td>同梱</td> <td>クライアント</td> </tr> </table> </body> </html>

以下はjsのプログラムです。前述のajax.indexmain.php内で読み込んでおり、ajax.index.php(後述)内のid=minの部分をテーブルの一番下に表示させるようにjsでプログラムしています。

ajax.index.js

$(function(){ $('#tbl').append($('<div>').load('ajax.index.php #min')); });

以下はjs内で読み込んでいるajax.index.phpです。ここの<tr>がうまくテーブルに表示できません。

ajax.index.php

<?php include('ajax.index_data.php'); ?> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> </head> <body> <table> <tr id="min"> <td>東京都</td> <td>港区</td> <td>幼稚園</td> <td><?php echo $Minato_k['sum(copies)'];?></td> <td><input type="checkbox" name=""></td> <td><input type="text" name="clientname"></td> </tr> </table> </body> </html>

以上です。拙い説明で大変恐縮ですが、何卒よろしくお願いします。

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

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

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

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

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

jun68ykt

2018/01/14 14:53

ブラウザの開発者ツールで、意図通りになっていないテーブル付近の HTML を見てDOM の組み方がどうなっているか確認するとよいと思います。
bigin

2018/01/15 01:01

ありがとうございます。ディベロッパー ツールのElementsの事でしょうか?みたところ、実装してもいない箇所が勝手に反映されているみたいですが、これはどうしてでしょう?
guest

回答1

0

ベストアンサー

追加しているdiv要素が悪さしているように見受けられます。

試してませんがこうしてみるとどうでしょうか?

js

1$('#tbl').append($('<tr>').load('ajax.index.php #min *'));

修正案

具体的にtdとしなかったので、子孫要素の関係を壊してしまったのかもしれません。

以下のようにしてみるとどうでしょう?

js

1$('#tbl').append($('<tr>').load('ajax.index.php #min td'));

投稿2018/01/14 15:04

編集2018/01/15 01:20
namnium1125

総合スコア2043

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

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

bigin

2018/01/15 01:02

ありがとうございます。この場合*はどのような意味を持つのでしょうか?
bigin

2018/01/15 01:10

なお、いただいた案で実行するともう一歩というところまでいきました。 ディベロッパーツールでみると以下のように、2箇所<td></td>から飛び出してしまいました。 <tr id="min"> <td>東京都</td> <td>港区</td> <td>幼稚園</td> <td><?php echo $Minato_k['sum(copies)'];?></td> <td></td> <input type="checkbox" name=""> <td></td> <input type="text" name="clientname"> </tr>
bigin

2018/01/15 01:29

ありがとうございます。おかげさまでうまくいきました。感謝申し上げます。 なお、#minの後ろにtdを加えるとうまくいった理由がわからないのですが、可能であれば理由をご教示いただくことは可能でしょうか? 全称セレクタのご説明もありがとうございます。
namnium1125

2018/01/15 01:45 編集

`#min`だと、`.load()`で取れる要素が`tr`要素になってしまうのがまずいんです。`tr`要素に`tr`要素を入れることはできません。 ですので私が示した方法(`<div>`ではなく`<tr>`にする方法)では別の表現に変えさせていただきました。 `#min td`は、`#min`の子孫要素である`td`全てを取得する、というセレクタです。 よって私の方法を言葉にすると、「`#min`要素がもつ全ての`td`を新たに用意した`tr`要素に入れてそれを`#tbl`に加える」という感じになるでしょう。
namnium1125

2018/01/15 01:51

CSSセレクタ自体も説明した方がいいような気がしたのでリンクを貼っておきます。 https://saruwakakun.com/html-css/reference/selector jQueryはCSSセレクタが使いやすいように設計されているみたいなので、CSSセレクタが使えそうであれば積極的に使ってみてください。
bigin

2018/01/15 04:21

とてもわかりやすい説明ですごく勉強になりました。 本当にありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問