2017-01-27 6 views
0

PHPプロジェクトでは、AJAXテクノロジを使用したいと考えています。私は単純にAJAXリクエストと単純な回答に精通していますが、 "1"(ユーザーは存在しません)という単純な回答のみが提供されています(ユーザーは存在しません)。それを行うにはどのように、たとえば、jQueryのを使用して応答テンプレートを使用してPHPでAJAXレスポンスをHTMLコードとして準備する方法

しかし、いくつかのケースでは、私はページの再レンダリングの巨大な部分を強制的に、より複雑な応答を、仮定私はアイデアを、次のしている、:。。

  1. JSONデータをサーバー側スクリプトのレスポンスとして使用し、クライアント側でjQueryを使用して処理しますか?

  2. 完全なHTMLコードをオンにします。サーバーは、AJAX要求の応答としてクライアントに送信し、単にajax呼び出しの "成功"部分でそれを処理しますか?

複雑な要求に対してサーバーでレスポンスを準備するにはどうすればよいでしょうか?私はオプション2を使用したい)が、私は、次の構文を避けたい:

$result = ''; 
$result = '<div>'; 
$result = ' <p>Username ' . $username . ' is not unique'; 
$result = '</div>'; 

return $result; 

は、Ajaxレスポンスをレンダリングするための「テンプレート」のようなものを使用する可能性はありますか?純粋なPHPを使用したいと思います。追加のフレームワークはありません。

+0

'file_get_contents()'と 'eval()'でファイルを読むことができます。あるいは、変数のプレースホルダを定義して 'preg_replace()'と置き換えることもできます。 – pixelarbeit

+1

方法1は方法2と同様に妥当です。実際には使用方法によって異なります。私はJSONのようなものでもっと少量のデータを返し、ページのクライアント側を更新することを望んでいるでしょう。おそらくページに既にあるかもしれないたくさんのHTMLを送り返すよりも、AJAX要求が小さくて速いことを意味します。はい、HTMLを生成するテンプレート作成方法は、すべて一緒に連鎖させるよりも簡単です。 Google "PHP templating"をもっと発見する...しかし、これは主に "意見に基づいた"質問、IMOです。 – samiles

+0

ありがとうございますが、テンプレート内のいくつかの配列などを処理したいので、 "replace"メソッドでは不十分です。私は交換の使用でそれを管理する方法を知らない。 –

答えて

0

これにはHTML template tagを使用できます。何度も何度も使用できるHTMLを保存することができます。

JavaScriptでは、IDでテンプレートを取得して複製します(詳細コピーを作成してください)。次に、必要なJSON値を新しいテンプレートに挿入します。これをあなたのページに挿入することができます。

また、handlebars.jsなどのクライアント側ライブラリを使用してください。

PHPでHTMLを送信しないでください。それは単なる間違っている。

+0

この回答によると、私は自分のプロジェクトでそれを実装しようとしました。サーバーサイドスクリプトはJSONデータを返します。クライアント側ではjQueryを使用して処理し、その結果をテンプレートに追加します。私の考えでは、私の場合は最良のアプローチだと思います。唯一の問題は、jQueryの