No.2ベストアンサー
- 回答日時:
がるです。
> 簡単に言うと、htmlファイルで、javascriptによって、サーバーサイドスクリプトを呼び出して、一部のデータのみを更新するやり方だと思っています。
おおむねそんなところでよいと思います。
> PHP+Smartyで、サイトを作っていた人が、ajaxで作ろうと思ったときに困ることでもあれば、教えてほしかったのです。
んと…これは「PHP+Smartyは把握している」「Ajax単体&JavaScriptは理解している」人が「組み合わせたときに」という事でしょうか?
その場合…私が知っている限りでは「特に問題なく」だと思います。
或いは「ブラウザ毎の差異を吸収する」ことを丁寧に考える場合「どのように吸収していくか」は問題になるとは思いますが。
# 個人的には「テンプレートファイルを分離する」方向性です。
> >「PHP+Smarty+Ajax」という方向性もあり得ますし。
> あの、これは、まったくわからないのですが、ajaxはもともと、htmlに、javascriptを組み込むものですよね?
> smartyの出番は、いつになるのでしょう?
んと…単純に「PHPプログラムで処理した結果発生する動的なHTMLの出力」はすべてSmartyで、になると思うのですがどうでしょうか?
# PHP単体でも無論可能ですが、Smartyを使う場合、PHP側にHTML要素かいたりprintだのechoだの書いたりということは0になると思うのですが。
なにか不明疑問などありましたらまた書いていただければと思います。
いろいろ、お答えいただき、ありがとうございます。
ですが、すいません。やっぱり「PHP+Smarty+Ajax」の組み合わせが、ありうるのが、わかりません。
Ajaxにおいて、PHPは、サーバーとの通信のみに使われているのではないのでしょうか?
たとえば、index.htmlがあったとして、ここに、サーバーからデータを持ってくる役割をするPHPファイルを呼び出すためのJavascriptが書いてあり、PHPファイルの結果は、index.htmlに反映される。という仕組みがAjaxだと思っております。
もし当たっているのであれば、Smartyのテンプレートを用意する場面がないと思うのですが・・・。どうでしょうか?
No.5
- 回答日時:
がるです。
Ajax思いっきり使ったサイトですか………
あまり知らないのですが、googleさんのgmailなんかはけっこういい感じなのではなかろうか、と思います。
google mapは事実上のAjaxの走りですし。
そういう意味では、やはりgoogleさん強し、ですねぇ。
う~ん。そんなに、普及しているものでもないのですかね。
すいません。smartyの話に戻っちゃうんですが、smartyのテンプレートファイルに、直接はジャバスクリプトを、書けると思うのですが、lightboxなどの外部ジャバスクリプトを使いたい場合は、サーバーのどこにおけば良いのでしょうか?
テンプレートのフォルダにおいても、読み込んでくれないみたいです。
No.4
- 回答日時:
がるです。
> XMLで、データを受け取るというのは、知っていました。
> ですが、XMLに動的な部分があるのが、わからないのです。
> XMLというのは、保存するときの形式ではないのですか?
> CSV形式を、よりコンピュータにわかりやすいように保存しているのだと思っております。
ああなるほど私も理解しました。
んと。XMLは「データの表現形式」なのですが。
その「データ」は「すでにファイルとして保存されている」こともあれば、場合によっては「DB等からその場で動的に作成する」場合もあります。
なので、特に「動的に」データを作成する場合において、XMLが「動的に」揺れ動く感じになります。
具体的には…
RSSとかがモロにそのイメージになりますし。たとえば「アクセス解析の情報をXMLで取得する」なんてぇときも動的ですね。
ってなあたりでどうでしょうか?
動的というのは、そういうことですか。
RSSは、一回実装したことがあるので、わかりました。
いろいろ、教えていただいてありがとうございます。
それで、ずうずうしいお願いなのですが、もし、Ajaxの技術をおもいっきり使ったサイトなどがあれば、教えてもらえないでしょうか。
No.3
- 回答日時:
がるです。
> いろいろ、お答えいただき、ありがとうございます。
> ですが、すいません。やっぱり「PHP+Smarty+Ajax」の組み合わせが、ありうるのが、わかりません。
なるほど了解です。
んと…詳しく説明するのに適しているサイトなのかは微妙なのですが、可能な限り、とことんまでおつきあいさせていただければ、と思います ^^
> Ajaxにおいて、PHPは、サーバーとの通信のみに使われているのではないのでしょうか?
Ajaxの通信において「AjaxはPHPプログラムを叩く」という点については、Yesだと思います。
> たとえば、index.htmlがあったとして、ここに、サーバーからデータを持ってくる役割をするPHPファイルを呼び出すためのJavascript が書いてあり、PHPファイルの結果は、index.htmlに反映される。という仕組みがAjaxだと思っております。
はい。これについてはYesです。
> もし当たっているのであれば、Smartyのテンプレートを用意する場面がないと思うのですが・・・。どうでしょうか?
なるほど。
んと…Ajaxは「PHP(には限らないのですが)プログラムを叩く」、ここについては認識が一致してるかと思います。
この辺を専門用語でrequestとか言います。
で、PHPプログラムは「何かを」Ajaxに返してきます。
これをresponseとか言います。
requestについては、まぁgetのパラメタとか、postでとか、適当に渡すとして、なのですが。
Ajaxは「responseとして何を受け取るのか」という部分が、ここで重要になります。
基本的にはXMLのデータを返す、のですが。
XMLである以上、そこに「動的な部分」と「静的な部分」があります。
だとすると、XMLのテンプレートを用意して、という手法は、あり得ます(この場合においては「あり得ます」程度です)。
次に。
最近よく見る実装なのですが。
XMLというよりXHTMLをresponseとして返して「そのままdocument.writeする」Ajaxを多々みるのですが。
この場合、XHTMLということで、当然ながらデザイン要素が絡みまして。
このケースですと、まず確定でテンプレートエンジン使った方がメンテナンスなどが容易になります。
たとえば「Ajaxでのやりとりが純粋に動的なデータだけ」なら、Smartyを使わない状況もあり得るのですが。
実際には、Ajaxがresponseとして受け取るデータは「デザイン要素を含む」事も多いので、その場合、Smartyを使う状況になります。
という説明でどうでしょうか?
また不明点などあったら書いていただけると。…多分次に書き込めるのは、明日の夜になってしまうと思うのですが。
詳しく説明していただいて、ありがとうございます。
私のわかっていない部分が、どこなのかがわかってきました。
おそらく、この部分が、私に想像できていないのだと思います。
>基本的にはXMLのデータを返す、のですが。
>XMLである以上、そこに「動的な部分」と「静的な部分」があります。
>だとすると、XMLのテンプレートを用意して、という手法は、あり得ます
>(この場合においては「あり得ます」程度です)。
XMLで、データを受け取るというのは、知っていました。
ですが、XMLに動的な部分があるのが、わからないのです。
XMLというのは、保存するときの形式ではないのですか?
CSV形式を、よりコンピュータにわかりやすいように保存しているのだと思っております。
smartyをどこで使うか、については、わかりました。
帰ってきたデータを表示する時につかうのですよね?
No.1
- 回答日時:
がると申します。
一応その道のプロです。んと…「PHP + Smart」と「Ajax」は、同系列で比較するにはちょっと無理があるモノになりますので、完全に別物としてとらえられた方がよろしいかと思います。
PHPはプログラム言語ですし、SmartyはPHPで実装されたテンプレートエンジン(Smarty以外にも色々ありますが)です。
で、Ajaxは、本来的には「JavaScriptを使って、Document Object Modelなどを用いてデータを非同期に取得し、XHTMLとCSSによってダイナミックな表示及び相互作用及びデータ操作を行う」技法です。
ですので「PHP+Smarty+Ajax」という方向性もあり得ますし。
お答えありがとうございます。
一応、Ajaxがプログラミング言語の名前でないことはわかっています。
簡単に言うと、htmlファイルで、javascriptによって、サーバーサイドスクリプトを呼び出して、一部のデータのみを更新するやり方だと思っています。
PHP+Smartyで、サイトを作っていた人が、ajaxで作ろうと思ったときに困ることでもあれば、教えてほしかったのです。
>「PHP+Smarty+Ajax」という方向性もあり得ますし。
あの、これは、まったくわからないのですが、ajaxはもともと、htmlに、javascriptを組み込むものですよね?
smartyの出番は、いつになるのでしょう?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- JavaScript プラグイン無しでContactform7にdatepickerを実装 3 2022/10/25 02:18
- JavaScript カラーミーショップのsectionループ内で、[引数][戻り値]ありの関数的な処理を行いたいです。 1 2022/05/07 19:39
- MySQL #1062 - '0' は索引 'PRIMARY' で重複しています。とでています。 1 2023/01/01 06:13
- AJAX 自作の地図をグーグルマップのようにしたい 3 2022/11/15 11:53
- PHP PHP ページング データベース 1 2022/06/16 10:30
- PHP メールフォームのタイトルが文字化け 2 2023/06/17 12:00
- その他(プログラミング・Web制作) カラーミーのSmarty構文について 1 2022/10/09 13:55
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- WordPress(ワードプレス) WordPressのサイトをオリジナルテーマで作るならHTML、CSS、JavaScript、PHP 1 2022/06/03 15:18
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
DTOとEntityの差は何ですか。
-
wordの差し込み印刷で文字...
-
WordでExcelデータを差込...
-
excel access連携 このテーブル...
-
MSFlexGridのデータを初期化し...
-
【C#】DataGridViewの最大列数...
-
C#でのForm間のデータ受け渡し...
-
画像の読み込み&白黒判別プロ...
-
表を表示するコントロールについて
-
TCPでデータを受け取ってそれを...
-
INIファイルに一括書き込みを行...
-
ActiveReportのサブレポート機...
-
「外部データの取り込み」とい...
-
エクセルVBAとWEBクエリ...
-
VB.NET 2017の勉強中です。 今...
-
★お手上げ状態です。助けてくだ...
-
小数点以下を含む計算でバグが...
-
「取得先」という表現について
-
Dosブロンプトでtabを出力したい
-
switch()文で値の大小比較
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
wordの差し込み印刷で文字...
-
DTOとEntityの差は何ですか。
-
【C#】DataGridViewの最大列数...
-
excel access連携 このテーブル...
-
WordでExcelデータを差込...
-
ActiveReportのサブレポート機...
-
GridViewからチェックボックス...
-
★お手上げ状態です。助けてくだ...
-
VBA内でのGetPixelを使用した時...
-
表を表示するコントロールについて
-
Windowsのマクロプログラムで、...
-
INIファイルに一括書き込みを行...
-
MSFlexGridのデータを初期化し...
-
C#でのForm間のデータ受け渡し...
-
「外部データの取り込み」とい...
-
C言語で地図を描きたい
-
小数点以下を含む計算でバグが...
-
エクセルVBAで楽天証券に注...
-
CSVのインポート【ASP.NET】
-
画像の読み込み&白黒判別プロ...
おすすめ情報