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

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

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

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

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

HTML

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

Q&A

2回答

1082閲覧

HTML Laravel 動的ページのデザインについて

AbcdefgFirst

総合スコア33

PHP

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

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

HTML

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

0グッド

0クリップ

投稿2018/07/06 01:59

編集2018/07/06 03:13

環境

PHP 5.6
MySQL 5.7
Laravel 5.1
CentOS

実現したいこと

お世話になっております。
現在、簡単なWebサイトをPHPのLaravelというフレームワークを使って開発しております。

View側のコード 'Laravel'/resources/views/'sample'/index.blade.php
は現在以下の様になっています。

php

1 @foreach ($datas as $data) 2 <div class="card mb-2"> 3 <div class="card-body"> 4 <h4 class="card-title">{{ $data->id }}</h4> 5 <h6 class="card-subtitle mb-2 text-muted">{{ $data->name }}</h6> 6 </div> 7 </div> 8 @endforeach

コントローラー側でデータベースの全レコードを取得して、このViewに$datasとして渡しています。

上のコードだとブラウザからアクセスした時に、データベースのテーブルに登録されている分だけ縦にidとnameがズラッと並んで表示されるのですが、これをiphoneのアプリアイコンの様なデザインに変えたいです。

もう少し具体的には、データベースのテーブルにイベントの名前を登録しておいて、さっきの画面にボタンを配置してそのボタン1つにつきイベント1つを割り当ててボタンを押したらそのイベントの詳細が別のページで表示されるイメージです。

リストのページに載せたいイベントが3つであれば、画面いっぱいの大きさに合わせたボタンが3つ。イベントが6つであれば、画面を上下に2分割して上部にボタン3つ下部にボタン3つを同じ大きさ幅で表示されるようにしたいです。

イベントはイベントリストのページでそのイベントのボタンが押されたら、開催日時や場所、内容等を別の画面に表示させたいです。

イベントの一覧の画面で、例えば 運動大会、グルメまつり、夜景スポットのようなイベント名が書かれたボタンが並んでいて、そこを押したら別のイベント詳細ページで具体的な情報が表示されるイメージです。

このイベント一覧に表示させたいイベントの数(ボタンの数)が結構な頻度で変わるので、その変更が来る度に画面の余白などのレイアウトを修正していたら時間がかかってしまうので、何とかイベントの数に応じてボタンの大きさなどが数に応じて変わる様な処理を書きたいです。

質問が分かり辛いかもしれませんが、お力を貸して下さい。
よろしくおねがいします。

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

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

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

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

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

m.ts10806

2018/07/06 02:16

「きれいにデザイン」というと個人の感覚によるものが大きいと思います。i,iiであげられている「実現したいこと」はその「きれいにデザイン」に該当するものでしょうか。「きれいに」部分をもう少し具体化していただけると助かります。難しいようでしたら画面イメージ添付でも構いません。
m.ts10806

2018/07/06 02:17

いずれにしてもhtml自体は静的なものなので、「件数に応じて」のように「動的」な表示をさせるのでしたらblade側にPHPロジックを書いていくことになります。
AbcdefgFirst

2018/07/06 02:41

ご回答ありがとうございます。もう少し具体的には、データベースのテーブルにイベントの名前を登録しておいて、さっきの画面にボタンを配置してそのボタン1つにつきイベント1つを割り当ててボタンを押したらそのイベントの詳細が別のページで表示されるイメージです。
AbcdefgFirst

2018/07/06 02:43

さっきの画面はイベントのリストの様なページです。そのボタン1つ1つのデザインはiphoneのアプリアイコンの様なものを作りたいです。
m.ts10806

2018/07/06 02:44

質問は編集できるので要件として質問本文に追記いただけますか?こちらのコメント欄はデフォルト非表示なので他の見ている人の目に付きにくくなります。
AbcdefgFirst

2018/07/06 02:46

リストのページに載せたいイベントが3つであれば、画面いっぱいの大きさに合わせたボタンが3つ。イベントが6つであれば、画面を上下に2分割して上部にボタン3つ下部にボタン3つを同じ大きさ幅で表示させたいです。
AbcdefgFirst

2018/07/06 02:49

申し訳ありません。本文を編集して投稿します。
m.ts10806

2018/07/06 02:51

「イベントとはいったい何ものか」というところも追記していただければと思います(テーブル構造と、サンプルデータがあれば更に助かります)
guest

回答2

0

テーブルを使ってループで作成してみては?

<a>タグでボタン風にCSSを組めば実現できそうですね。

簡単に書くと

blade

1 <table> 2 @for($i = 0; $i < count($datas); $i++) 3 @switch($i % 3) 4 @case(0) 5 <tr><td><a href="{{$datas[$i]->url}}">{{$datas[$i]->title}}</a></td> 6 @break 7 @case(1) 8 <td><a href="{{$datas[$i]->url}}">{{$datas[$i]->title}}</a></td> 9 @break 10 @case(2) 11 <td><a href="{{$datas[$i]->url}}">{{$datas[$i]->title}}</a></td></tr> 12 @break 13 @endswitch 14 @endfor 15 </table>

みたいなイメージですかね

投稿2018/08/01 14:23

randr

総合スコア202

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

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

0

flexboxでなんとかなりそうな気がします。
https://www.webcreatorbox.com/tech/css-flexbox-cheat-sheet

投稿2018/07/06 07:26

perpouh

総合スコア299

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問