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

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

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

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

Smarty

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

Q&A

解決済

3回答

2732閲覧

PHP[smarty]if文に関して

Honoka007

総合スコア13

PHP

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

Smarty

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

0グッド

0クリップ

投稿2018/07/06 10:36

前提・実現したいこと

PHPテンプレートエンジン「smarty」に関して

質問です。smartyのif文の問題になります。
if文を用いて、下記の記載された条件で振り分けて表示するには
どうしたら良いでしょうか?

未経験からフロントエンジニアとして働いています。
プログラミング学習はまだまだ全然不足しており、
下記の課題も自力では解けず、恥を忍んでお聞きします。
どうぞよろしくお願いします。

【条件->表示内容】
3で割り切れる場合-> une
5で割り切れる場合-> deux
どちらでも割り切れる場合-> trois
それ以外-> そのままの数字

【解答用紙】

{section loop=$num name="num_loop"}
{$smarty.section.num_loop.index}
<br>
** {if}
{else}
{elseif}
{/if}**
{/section}

【出力結果】

0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

【解答の理想像】

0
1
2
une
4
deux
Fizz
7
8
une
deux
11
une
13
14
trois

**### 試したこと
**
もっとも解答に近いコーディングは以下に載せています。

{section loop=$num name="num_loop"}
{$smarty.section.num_loop.index}
<br>
{if $smarty.section.num_loop.index_prev is div by 3}
<p>Fizz</p>
{/if}
{if $smarty.section.num_loop.index is div by 5}
<p>Buzz</p>
{/if}
{if $num_loop is div by 3 && $num_loop is div by 5}
<p>FizzBuzz</p>
{/if}
{/section}

【解答結果】

0
deux
trois
1
une
trois
2
trois
3
trois
4
une
trois
5
deux
trois
6
trois
7
une
trois
8
trois
9
trois
10
une
deux
trois
11
trois
12
trois
13
une
trois
14
trois
15
deux
trois

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

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

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

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

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

guest

回答3

0

自己解決

{if $smarty.section.num_loop.index is div by 3 && $smarty.section.num_loop.index is div by 5&& !$smarty.section.num_loop.index == 0}

<p>trois</p> {elseif $smarty.section.num_loop.index % 3 == 0 && !$smarty.section.num_loop.index == 0} <p>une</p> {elseif $smarty.section.num_loop.index % 5 == 0 && !$smarty.section.num_loop.index == 0} <p>deux</p> {else} {$smarty.section.num_loop.index} <br> {/if}

投稿2018/07/09 09:32

Honoka007

総合スコア13

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

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

0

自己解決しました!ありがとうございました。

{if $smarty.section.num_loop.index is div by 3 && $smarty.section.num_loop.index is div by 5&& !$smarty.section.num_loop.index == 0}
<p>trois</p>
{elseif $smarty.section.num_loop.index % 3 == 0 && !$smarty.section.num_loop.index == 0}
<p>une</p>
{elseif $smarty.section.num_loop.index % 5 == 0 && !$smarty.section.num_loop.index == 0}
<p>deux</p>
{else}
{$smarty.section.num_loop.index}
<br>
{/if}

投稿2018/07/09 09:21

編集2018/07/09 09:30
Honoka007

総合スコア13

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

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

0

smarty でも普通に、剰余(%)できますよ。
(課題とのことなので、ヒントにとどめておきます。)


イメージ説明

投稿2018/07/06 11:21

編集2018/07/09 09:25
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

Honoka007

2018/07/06 12:45

◯◯ % 3 == 0 のように書き直せますね。コメントありがとうございます。
退会済みユーザー

退会済みユーザー

2018/07/06 13:06

解決済みなら、質問を閉じてくださいね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問