Smartyでの表示について - PHPプロ!Q&A掲示板

252

  • 0P

Smartyでの表示について

質問日時 / 2006年11月26日 23:40    回答数 / 5件

Questioner:  gonkosan  このエントリーをはてなブックマークに追加 

キーワード / Smarty    include    タグ   

はじめまして。

Smartyの質問なのですが、
Aというテンプレートファイル内で、
2つのファイルを{include}しています。

上のファイルは検索条件入力のファイルで
下はその検索結果を表示するリスト画面になっています。

1.
検索条件を変更すると検索結果を再表示させたいのですが、
下のテンプレートファイルだけを更新することはできるのでしょうか?
今はAのテンプレートをdisplayしなおしています。

2.
検索条件の部分のタグをPHPで作成してSmartyにassignしたところ、
HTMLタグがそのまま表示されてしまいます。
$dataに<tr><td>あああ</td></tr>のようなデータをセットしています。
テンプレートファイルでは{$data|default}としたのですが、
PHPからHTMLタグを作成してそのまま表示するには
どのようにしたらよいのでしょうか?

環境はPHP5+Apache2+Smartyです。

よろしくお願いいたします。


ツリー一覧

┣A01dala00>1. >検索条件を変更すると検索結果を再表示させた
┃┗A01-1gonkosan>dala00さん ありがとうございました。 2.は
┗A02dala00いえ、nodefaultではなく {$var|smarty:nodefaults}
 ┣A02-1gonkosan>dala00さん ご返答ありがとうございます。 お
 ┗A02-2gonkosan>dala00さん 遅くなりましたが、解決しました。

回答一覧

並び替え:

A01 満足
answererdala00 [11月26日 23:45]

>1.
>検索条件を変更すると検索結果を再表示させたいのですが、
>下のテンプレートファイルだけを更新することはできるのでしょうか?
>今はAのテンプレートをdisplayしなおしています。

それはsmartyは関係ありません。
iframeやajaxをご利用下さい。

>2.
>検索条件の部分のタグをPHPで作成してSmartyにassignしたところ、
>HTMLタグがそのまま表示されてしまいます。
>$dataに<tr><td>あああ</td></tr>のようなデータをセットしています。
>テンプレートファイルでは{$data|default}としたのですが、
>PHPからHTMLタグを作成してそのまま表示するには
>どのようにしたらよいのでしょうか?

smarty:nodefaults
を使うと出来ます。

この意見に回答する

ツリーへ TOPへ

A01-1
replyergonkosan [11月26日 23:58]

>dala00さん

ありがとうございました。

2.は書き間違えました。nodefaultと書いたつもりでした。
でも、出来るということですよね。もう一度確認して、やってみます。

1.のSmartyは関係ありません。が良くわかりませんでした。すみません。

Smartyで下のように書いた時に
c.htmlだけを更新したいのに、ファイル全体を呼びなおすと
b.htmlに渡すデータも再作成しないといけないのがどうにかならないかと
思ったのですが、そもそもこのやり方が間違っているということでしょうか?

<html>
<body>
<table>
<tr><td>
{include file ="b.html" $data=$data_b}
</td></tr>
<tr><td>
{include file ="c.html" $data=$data_c}
</td></tr>
</table>
</body>
</html>

よろしくお願いします。

この意見に回答する

ツリーへ TOPへ

A02 満足
answererdala00 [11月27日 00:17]

いえ、nodefaultではなく
{$var|smarty:nodefaults}
のようにやらなくてはいけません。

検索条件を入力し直して
「再検索」のようなボタンを押して
ページの一部分の表示だけを書き換えたいと言うことですよね?
smartyはただのテンプレートエンジンですので、
そのようなことは出来ません。
javascript、afaxを勉強してみて下さい。
(それともc.htmlのファイル自体を書き換えたいということですか?)

この意見に回答する

ツリーへ TOPへ

A02-1
replyergonkosan [11月27日 09:10]

>dala00さん

ご返答ありがとうございます。

おっしゃるとおり再検索みたいなことがしたいと思っていました。
その部分はJavaScriptを使用してみようかと思います。

{$var|smarty:nodefaults} はこの通り書いているのですが、
タグがそのまま出力されます。
タグの作成も見直してはみたのですが。
他に何か設定等が邪魔しているとかあるのでしょうか?
もう一度やってみます。

よろしくお願いします。

この意見に回答する

ツリーへ TOPへ

A02-2
replyergonkosan [12月2日 22:29]

>dala00さん

遅くなりましたが、解決しました。

$smarty:nodefaultsを
ファイルをincludeさせている方で記述していませんでした。
ありがとうございました。

この意見に回答する

ツリーへ TOPへ

<<質問一覧へ



Pick Up Q&A

Q
array_mergeの再帰処理の動作について
 このエントリーをはてなブックマークに追加 
A
>1個になったとき$leftを返しますが、 >このとき、最終的な$leftはnullになるかと思います。 いいえ、最後は「渡された配列をそのまま」返します。要素が2以上あるときとの違いは(並べ替えずに戻るので...

>>続きを読む

再帰関数は最初の内は混乱しますが、非常に上手く使える場面もいずれ出てきます。これを機会に学んでいけるといいですね。

▲解説者:岡本(アシアル株式会社 教育コーディネーター兼 システムエンジニア)