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

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

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

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

Smarty

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

Q&A

解決済

1回答

2367閲覧

Smartyでサーバ側プログラムを1ファイルで管理する

lupus_dingo

総合スコア257

PHP

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

Smarty

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

0グッド

1クリップ

投稿2015/05/10 09:13

編集2015/05/10 09:22

こんにちは。

Smartyを勉強がてら簡単なWebアプリを作っています。
すべてPOST送信で、URLが切り替わらないようにするつもりです。
画面ごとにtplを作ってサーバ側は1つのphpで管理しようと思っています。
しかし単純な画面遷移でtplを表示したい場合(サイドバーからの画面遷移など)、
aタグのhrefに指定するのは共通のphpファイルになってしまうと思いますが
その場合どのようにして遷移先のtplを切り分ければいいのでしょうか?
それともSmartyって画面ごとにtplとphpのペアを作るものなのでしょうか?

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

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

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

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

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

guest

回答1

0

ベストアンサー

例えば jQuery なら次のようにです。

lang

1$(function(){ 2 $('#link').on('click', function(ev){ 3 // デフォルトの動作を抑止 4 ev.preventDefault(); 5 6 // バブリングを止める 7 ev.stopImmediatePropagation(); 8 9 // form 要素を作る 10 var $form = $('<form></form>'); 11 12 // アクションとメソッドを設定 13 $form.attr('action', location.href); 14 $form.attr('method', 'post'); 15 16 // 子要素(POST する値)を作成 17 $form.append( 18 $('<input></input>') 19 .attr('type', 'hidden') 20 .attr('name', 'page') 21 .val("hoge") 22 ); 23 24 // フォームをドキュメントに追加 25 $form.appendTo(document.body); 26 27 // フォームをサブミット 28 $form.submit(); 29 }) 30})

ただ、単に PHP ファイルを1つにしたいだけであれば全て POST で遷移する必要は無く、
クエリストリングを使うとか、PATH_INFO を使うかすると良いでしょう。

それともSmartyって画面ごとにtplとphpのペアを作るものなのでしょうか?

そんなことはありません(もちろんそうしてもいいですが)。

前述の通り、クエリストリングとか PATH_INFO とか使えば php ファイルと tpl ファイルがペアで無くても構いません。

投稿2015/05/10 11:02

編集2015/05/10 11:09
ngyuki

総合スコア4514

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

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

lupus_dingo

2015/05/11 14:14

回答ありがとうございます。 jqueryでけっこう実装が必要なんですね。 クエリストリングはurlで遷移先をパラメータ指定する方法で合ってるでしょうか? またPATH_INFOとはなんでしょうか?
ngyuki

2015/05/11 15:53

クエリストリングとは例えば下記のようにして `hoge` をパラメータとして使うものです。 PHP からは `$_GET['page']` で値がとれます。 http://example.com/index.php?page=hoge PATH_INFO なら例えば下記のようにして `hoge` をパラメータとして使うものです。 PHP からは `$_SERVER['PATH_INFO']` で値がとれます(先頭にスラッシュが付きます)。 http://example.com/index.php/hoge
lupus_dingo

2015/05/16 06:59

回答ありがとうございます。 PATH_INFOはクエリストリングで言うパラメータ名自体を値として使うことなんですね! 勉強になります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問