Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何集成AJAX以避免PHP CMS的页面重定向_Php_Mysql_Ajax_Redirect_Content Management System - Fatal编程技术网

如何集成AJAX以避免PHP CMS的页面重定向

如何集成AJAX以避免PHP CMS的页面重定向,php,mysql,ajax,redirect,content-management-system,Php,Mysql,Ajax,Redirect,Content Management System,我使用了一个用PHP和MySQL构建的CMS。它工作得很好,我完全按照自己的喜好定制了它。现在要做的唯一一件事就是采用更有效的方式加载数据。当用户想要选择文章时,我希望浏览器保持在相同的页面/url上,而无需重新加载或重定向。以下是CMS的演示: 例如,上面的代码行来自homepage.php脚本。它是一个锚定标签,供用户选择以查看特定文章的全部内容,该文章仅部分显示在主页中。单击此链接时,用户将被引导离开主页并转到文章的特定URL。如何让全文内容页面加载到主页内部并隐藏原始主页内容以避免页面重

我使用了一个用PHP和MySQL构建的CMS。它工作得很好,我完全按照自己的喜好定制了它。现在要做的唯一一件事就是采用更有效的方式加载数据。当用户想要选择文章时,我希望浏览器保持在相同的页面/url上,而无需重新加载或重定向。以下是CMS的演示:

例如,上面的代码行来自homepage.php脚本。它是一个锚定标签,供用户选择以查看特定文章的全部内容,该文章仅部分显示在主页中。单击此链接时,用户将被引导离开主页并转到文章的特定URL。如何让全文内容页面加载到主页内部并隐藏原始主页内容以避免页面重定向问题。这是可以用这个特殊的CMS做的事情吗?如果需要,我可以从CMS提供任何PHP脚本。提前谢谢

ARCHIVE.php脚本:


如果您可以使用ajax获取文章的内容,并将该内容放在该文章的标题下,例如,假设您在后端有一个php函数,您可以在给定文章id的情况下调用该函数来获取文章的内容,那么您可以发出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>
更新: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>

我知道这个函数会得到一篇特定的文章,但是如何将它集成到存档页面中,例如.each语句中的存档页面。我已经编辑了这个问题,在问题区域提供了上面归档页面中的整个脚本。你的回答很好,让我更容易理解如何制作特定文章的锚定标记,但为了更全面地了解情况,你能修改archive.php脚本吗?再次感谢!很抱歉,我还没有对你的答案投票,如果你能进一步详细说明,我将不胜感激。我已经更新了答案,希望它能帮助你更好地理解它。很好的跟进,我不认为把一个普通的php程序变成一个支持ajax的程序会这么容易。非常感谢,干杯!
<?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>