ホームページ  >  記事  >  バックエンド開発  >  Smarty テンプレートと PHP 間のデータ転送の問題

Smarty テンプレートと PHP 間のデータ転送の問題

WBOY
WBOYオリジナル
2016-06-23 14:12:331183ブラウズ

smartyテンプレートを使用してページを作成しました。データはindex.phpで読み取られ、index.tplファイルに表示されます。ただし、tpl ファイルには、規則に従ってデータを並べ替えるボタンがあります。たとえば、私のデフォルトでは、index.php のデータベースから読み取られる順序は 1、2、3、4 です。次に、tpl ファイルにボタンがあり、クリックするとページに 4、3、2、1 が表示されます。現時点では、クリックイベントをindex.phpに送信し、index.phpが規定に従ってデータを読み取ってtplファイルに表示する方法を知りたいだけです。
tpl ファイルにクリック イベントを記述し、それを配信するために ajax を使用したいと思いました。パケット キャプチャでは、index.php もデータを読み取っていることが示されましたが、現在の tpl ファイルにはまだ前のものが表示されていました。

$("#sortbypop").click(function(){
var url = document.URL;
$.get(url,{action:"get",sort:"popsort"},function(data,textStatus) ){
})
}); これは ajax コードです。どうすればいいですか?


ディスカッションへの返信 (解決策)

コールバック関数 function(data,textStatus){} の関数本体は空です、もちろん何もしません

何をするかは設計によって異なります シーン

は次のようになりますソ先輩になってください!マスターを見つけました。

そうです。何も実行する必要がないので、私がやりたいのは、index.tpl でパラメーターを送信し、バックグラウンドの PHP プログラムにそれを取得させ、データベース データを再読み取りして表示することです。 tplと同等の処理--->パラメータの送信--->php再読み込みデータの取得--->tplでの表示更新がこの関数です。重要なのは、データがindex.phpで読み取られてから表示される(index.tpl)ということです。ここでやりたいことは、tpl がパラメータを返し、php がパラメータを再読み取りして、データを tpl に再送信することです。混乱してしまいました。 。 。 。

コールバック関数 function(data, textStatus){} の関数本体は空なので、もちろん何も行いません

何をしたいかはデザインしたシーンによって異なります

新しい製品の並べ替えをクリックするだけです。クリックして並べ替えると、別のデータが表示されます
function(data,textStatus){} 内

data は明らかに返されたデータです。このデータをどのように表示するかは設計に関係します。他の人はどうやって知るのでしょうか?


function(data,textStatus){} 内

data は明らかに返されたデータです。このデータをどのように表示するかは設計に関係します。他の人はどうやって知るのでしょうか?

このコールバック関数は使用する必要はありません。テストのために使用します。つまり、私のアイデアをどのように実装するかということは、実際には非常に単純な質問であり、おそらく解決できたと思います。率直に言うと、
php はデータの行を読み取り、それをテンプレートに表示します。テンプレートには、テンプレートにデータを表示する前に PHP でデータを再並べ替える必要があるボタン関数が追加されました。特定のプロセスは、フロントエンド ページ tpl-->php-->tpl です。今、私はテストをします。コールバック関数でデータをアラートすると、新しいデータの完全な HTML コードが表示されます。つまり、コールバック関数で返されるデータのうち、phpファイル内の表示(tpl)ファイルも返されます。したがって、返されるのは HTML コード全体です。ただし、現在の tpl ページは変更されていません。私がやりたい機能は、クリックすると真ん中に表示される写真の順番が変わるというものです。クリックしない場合はデフォルトの順序になります。

コールバック関数は絶対に必要で、データは変更が必要な領域の内容のみである必要があります

では、対象の領域の内容をデータに置き換えるだけで完了ですか。


これは js 操作です。次の内容をデータに置き換えるだけです。

コールバック関数は絶対に必要で、データは変更が必要な領域の内容のみである必要があります

では、対象の領域の内容をデータに置き換えるだけで完了ですか。

現在、メインのデータリクエストはindex.phpです。したがって、display(tpl) を含む、index.php 内のすべてのデータが返されます。これで、data 内のデータは HTML ページ全体のコンテンツになります。内部のデータを取得するのは困難です。もっと便利な方法があるかどうかを確認したいです

ajax を使用して部分更新を実行したい場合は、テンプレートを逆アセンブルする必要があります。つまり、さまざまなニーズに応じて異なるテンプレートを使用します

全体を更新したい場合は、ajax を使用しないでください


ajax を使用して部分的な更新を実行したい場合は、テンプレートを逆アセンブルする必要があります。つまり、ニーズに応じて異なるテンプレートを使用します

全体として更新したい場合は、ajax を使用しないでください

単純に分離できることがわかりました。私は ajax を使用した全体的なリフレッシュを追求してきましたが、間違った方向に進んでおり、あまりにも偏執的になってしまいます。徐先生、ありがとうございました!

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。