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

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

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

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

Smarty

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

HTML

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

Q&A

解決済

1回答

5006閲覧

smarty記述をHTMLタグ内に埋め込むことは可能なのでしょうか?

wkbiz

総合スコア152

PHP

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

Smarty

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

HTML

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

0グッド

0クリップ

投稿2017/05/31 16:04

よろしくお願いします。
非常にバカな幼稚な質問で恐縮ですが、ご教授いただきたくお願いします。

tplファイルを作成する際、smartyの記述は大抵は

<table> <tr> <!-- {if $a} --> <td style="color: red;"> AAA </td> <!-- {else} --> <td style="color: blue;"> BBB </td> <!-- {/if} --> </tr></table> という書き方であると思っていますが、これを・・・ <!-- <td {if}~~{else}~~{/if} > -->

このような書き方は出来るものなのでしょうか?

上記例だと、条件によってtd内の色を変えたいという処理をさせたいのですが
それを<td>タグ内に処理を書いてもできるものか。ということです。

実際やってみて出来なかったのですが、あるサイトでこのような書き方をされている
のを見たことがあり、私だけが出来てないのか、そもそもそういう書き方はできないのか
を知りたく思っています。

可能でしたらサンプルコードや参考先URLなどお教え頂けると嬉しいです。
よろしくお願いします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

公式マニュアルにも行頭に書かなければならないという記述はないので
可読性の面では少し難が出てきますが、問題なくできるはずですよ。
というよりこの場合<!-- -->は不要というか邪魔しているのではないかと・・・
HTMLでは「画面上に表示しない」コメント機能として使うようなものですしね。
http://www.htmq.com/html/comment2.shtml

「実際やってみて出来なかった」コードをご提示いただければ
なぜ出来なかったかこちらの方で検証もできますしどうすれば良いかアドバイスもできますよ。

サンプルのようなもの

下記のように書いて動作確認してみましたが、問題なく動きました。

Smarty

1{* $colorがtrueなら赤、それ以外は黒 *} 2<p style="color:{if $color }red{else}black{/if};"> 3Hello!! 4</p>

やはりHTMLタグを<!-- -->で囲っているので「何も表示されない」という問題が起きているのではないでしょうか?
そもそもSmartyのif文などの構文はPHPの構文処理に変換されて元々画面に表示されないので<!-- -->で囲う必要がないですね。

投稿2017/05/31 21:21

編集2017/06/01 00:31
m.ts10806

総合スコア80850

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

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

wkbiz

2017/06/04 16:41

返信遅れて申し訳ございません。ご回答いただき有難うございました。 結論を言えば私のコーディングミスでした。ミスを直したところ無事エラーなく実行できました。 有難うございました。 Smartyをもっと使うならもっとSmartyのこと勉強しないといけないなあと思ったのと、海外もふくめてSmarty書籍って本当に少ないですよね。Smartyてあまり使われないんでしょうかね。(愚痴失礼しました)
m.ts10806

2017/06/04 21:27

確かにSmartyは古い書籍が多いですね。ちょっと検索しても私がSmartyを初めて使った時の何年も前の書籍がいまだに検索上位にくるくらしですし。基本が変わっていないといえばそれまでですが・・・。 今はtwigの方が多いというのもどこかで見ました。twigを標準のテンプレートとして採用しているフレームワークもあるようですし。 フレームワークもそうですが、使う人や案件に合っているかとか、好みなのかなとも思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問