0

PHPとMySQLで構築されたCMSを使用しました。それはうまく機能し、私はそれを私の好みに合わせて完全にカスタマイズしました。今やるべきことは、データをより効率的にロードする方法を作ることだけです。ユーザーが記事を選択したい場合、ブラウザをリロードしたりリダイレクトしたりせずに、まったく同じページ/URLにとどまらせたいと思います。これがCMSのデモです:DEMO LINK

たとえば、上記のコード行は、homepage.phpスクリプトから実行されました。これは、ホームページに部分的にしか表示されなかった特定の記事のコンテンツ全体を表示するためにユーザーが選択するためのアンカータグです。このリンクをクリックすると、ユーザーはホームページから離れて記事の特定のURLに移動します。ページリダイレクトの問題を回避するために、記事のコンテンツページ全体をホームページ内にロードし、元のホームページコンテンツを非表示にするにはどうすればよいですか。これは、この特定のCMSで実行できることですか?必要に応じて、CMSから任意のPHPスクリプトを提供できます。前もって感謝します。

ARCHIVE.phpスクリプト:

 <?php foreach ( $results['articles'] as $article ) { ?>
    <li>
      <h2>
        <span class="pubDate"><?php echo date('j F Y', $article->publicationDate)?></span><br><a href=".?action=viewArticle&amp;articleId=<?php echo $article->id?>"><?php echo htmlspecialchars( $article->title )?></a>
      </h2>
      <p class="summary">
        <?php if ( $imagePath = $article->getImagePath( IMG_TYPE_THUMB ) ) { ?>
          <a href=".?action=viewArticle&amp;articleId=<?php echo $article->id?>">

<div class="floated_child0" style="background-repeat:none; background-image:url('<?php echo $imagePath?>');"></div></a>
        <?php } ?>
      <?php echo htmlspecialchars( $article->summary )?>&nbsp;&nbsp;<a href=".?action=viewArticle&amp;articleId=<?php echo $article->id?>">(more)</a>
      </p>
    </li>
 <?php } ?>
4

1 に答える 1

2

ajaxを使用して記事のコンテンツを取得し、そのコンテンツをその記事のタイトルの下に配置できる場合、たとえば、記事IDを指定して記事のコンテンツを取得するために呼び出すことができるphp関数がバックエンドにあるとします。 GET ajax リクエストを作成して記事のコンテンツを取得し、目的の div に配置します。何かのようなもの:

<script language="javascript">
$("#view_more").click(function(){
 var dataString = "id="+article_ID;
          $.ajax({
                type: "GET",
                url: 'http://myhost.com/articles/getArticleContent',
                data: dataString,
                success: function(response) {
                   $('div #description').html(response);
                }
          });
          return false;
      });
</script>

update:27-11-2012 理解を深めるのに役立つ場合は、このようなことを試すことができます。あなたが望むものとは違うかもしれませんが、どのように進めればよいかを理解するのに役立つことを願っています.

<?php foreach ( $results['articles'] as $article ) { ?>
    <li>
      <h2>
        <span class="pubDate"><?php echo date('j F Y', $article->publicationDate)?></span><br><a href=".?action=viewArticle&amp;articleId=<?php echo $article->id?>"><?php echo htmlspecialchars( $article->title )?></a>
      </h2>
      <p class="summary" id="<?php echo $article->id?>">
        <?php if ( $imagePath = $article->getImagePath( IMG_TYPE_THUMB ) ) { ?>
          <a href=".?action=viewArticle&amp;articleId=<?php echo $article->id?>">

<div class="floated_child0" style="background-repeat:none; background-image:url('<?php echo $imagePath?>');"></div></a>
        <?php } ?>
      <?php echo htmlspecialchars( $article->summary )?>&nbsp;&nbsp;<a href="#" onclick="viewFullArticle(<?php echo $article->id?>)">(more)</a>
      </p>
    </li>
 <?php } ?>
<script language="javascript">
function viewFullArticle(article_ID){
 var dataString = "id="+article_ID;
          $.ajax({
                type: "GET",
                url: 'http://myhost.com/articles/getArticleContent',
                data: dataString,
                success: function(response) {
                   $('p #'+article_ID).html(response); //assuming response is everything you want to display within summary paragraph
                }
          });
          return false;
      };
</script>
于 2012-11-16T11:29:16.687 に答える