0

HTML コンテンツを含む PHP ページがあります。HTML 間でいくつかの PHP コードを実行すると、いくつかの結果が得られます。実際、このページから AJAX で応答を取得しようとすると、ページのコンテンツ全体と探していた結果が表示されます。ページに余分なコンテンツが書き込まれないようにするにはどうすればよいですか。何かがページに印刷されるたびに、AJAX 呼び出しに応答するようになることはわかっていますが、これを何らかの形で修正する方法が必要です。

マイページファイル(名前:page.php):

<?php echo $Content->GetData('HEADER'); ?>
    <div id="Content">
      <div id="Page">
        <?php if($Content->GetData('PAGE','IS_TRUE')) : ?>
        <?php if(NULL !== $Content->GetData('PAGE','TITLE')) : ?>
        <?php echo $Content->GetPlugins("Page:" . $Content->GetData('PAGE','ID') . ",BeforeTitle"); ?>
        <div id="Title" dir="rtl">
          <a href="<?php echo $Content->GetInfo('ABS_ROOT') . "page/" . $Content->GetData('PAGE','NAME'); ?>"><?php echo $Content->GetData('PAGE','TITLE'); ?></a>
        </div>
        <?php echo $Content->GetPlugins("Page:" . $Content->GetData('PAGE','ID') . ",AfterTitle"); ?>
        <?php endif; ?>
        <div id="Content" dir="rtl">
          <div style="float: right; width: 966px; padding: 6px">
            <?php echo $Content->GetPlugins("Page:" . $Content->GetData('PAGE','ID') . ",BeforeContent"); ?>
            <?php echo $Content->GetData('PAGE','CONTENT'); ?>
            <?php echo $Content->GetPlugins("Page:" . $Content->GetData('PAGE','ID') . ",AfterContent"); ?>
          </div>
        </div>
        <?php else : ?>
        <div id="Content" dir="rtl">
          <div style="float: right; width: 966px; padding: 6px">
             There is no page like this in our archives.
          </div>
        </div>
        <?php endif; ?>
      </div>
    </div>
<?php echo $Content->GetData('FOOTER'); ?>

このようにブラウザにアドレスを書き込むと、リダイレクト リストが表示され、プラグインがロードされlocalhost/cload/blog?action=rateた page.php が表示されます。blog問題は、このアドレスを介して AJAX でプラグインを呼び出したいのですが、blog最初にページ データをレンダリングすることです。

これが面倒な場合は申し訳ありません。

4

2 に答える 2

1

page.phpいくつかの関数、主にデータ処理関数、次に出力関数に変更することをお勧めします。次に、ページを読み込むときに、それがAJAXリクエストであるかどうかを確認し、そうである場合は、必要なデータをJSONとしてエコーします。そうでない場合は、出力関数を使用してページをレンダリングします。

または、2つ目の別のページを作成することもできますが、それは単一のファイルよりも維持が難しい場合があります。

于 2012-09-05T17:31:44.897 に答える
0

はい、リクエストが ajax リクエストであるかどうかを確認する必要があります。そうである場合は、必要な結果のみを返すように応答を変更する必要があります。

この php コードは、これに関する大まかなアイデアを提供します。

if($request->isXmlHttpRequest()){
  return new Response(json_encode($data_array));
}

これが役立つことを願っています。

于 2012-09-12T07:44:49.717 に答える