0

私はphpを使用しており、このテンプレートコンテンツのphpファイルをjqueryにload()して、フロントエンドビューをレンダリングするために#divIDに渡す必要があります。

phpファイルをjqueryにロードし、それをリピーターと呼ばれる変数として渡す方法がわかりません。これは、Ajax(obj)クエリ結果でロードされたテンプレートを組み合わせてすべての行を構築するのに役立ちます。

セットアラートでは、テンプレートなしで[オブジェクトオブジェクト]としてポップアップ表示されます。phpテンプレートのコンテンツ全体をvarrepeaterとしてjqueryに書き出すと、機能しますが、jqueryにそのすべてのhtmlが必要ではありません。load()してから読み取ります。

これが理にかなっている場合のコードは次のとおりです

$('#pageContent').load('../includes/OrderLookup.php #pageContent');
alert ($('#pageContent').load('OrderLookup.html #pageContent'));
var url = $('#pageContent').load('../includes/OrderLookup.php');
var page = '<div id="pageContent"></div>';
var repeater = $('#pageContent').load('OrderLookup.html #pageContent');

var pageBuildUp='';
for (x in dataArray){
     pageBuildUp += obj.repeater;
    //alert(obj.repeater);
    //pageBuildUp += url;
    pageBuildUp = pageBuildUp.replace('##transactionId##',makeTextSmall(dataArray[x]['blockvalue'],20));
    if (dataArray[x]['description']==''){
        pageBuildUp = pageBuildUp.replace('##orderTotal##','no total amount');
    }
4

1 に答える 1

0

jQueryを使用loadしてURLとDOMフラグメント識別子を指定すると、DOMフラグメントが返されるため、オブジェクトとしてアラートが発生します。私の推測では、あなたは文字列を期待していると思いますか?var repeaterこれを行うには、次の行から始まる行を変更する必要があります。

var repeater = $('#pageContent').load('OrderLookup.html #pageContent')[0].outerHTML;

ただし、実装しているアイデアは危険に聞こえます。フロントエンドでPHPを手動で解析しようとしているようです。まず、PHPは、トークンを取り除いて返送される前に実行されませんか?第二に、テンプレートの解析にプレーンなJavascriptを使用するのは面倒です。JSテンプレートは、先ほど説明したようなタスクを簡単にするために、最近大きな注目を集めています。私は個人的にMustacheをお勧めします。これは私にとって恩恵でした。

于 2013-02-20T17:24:21.440 に答える