0

我在我正在尝试开发的网站上理解一个概念时遇到了麻烦(我对 PHP 比较陌生,所以我花了一些时间)。

基本上,我在一个 PHP 变量中有一些 html 内容,我想在单击链接时在灯箱中输出这些内容。

目前,它的工作原理如下 -

echo '<a class="fancybox" id="inline" href="#data' . $limit . '">Read more</a>' ;  

echo '<div style="display:none"><div id="data' . $limit . '"><h2 class="innertitle">' . $item['linktitle'] . '</h2>' . $item['descriptionfull'] . '</div></div>';

所以这里发生的情况是,变量正在加载到页面上的 div 中,对最终用户隐藏,单击链接然后使用 Fancybox 将此数据加载到灯箱中。这很好用,但是随着网站上文章数量的增加(以及它们的描述性 html),页面本身变得非常大并且需要很长时间才能加载。

因此,如果可能的话,我想要实现的是让“阅读更多”链接指向网站上的另一个 php 文件,该文件在加载时会动态引入 php 变量。这样可以避免在主页上加载 descriptionfull 变量,因此只有在单击相关的 readmore 链接时才应该加载。

这可能吗?干杯。

4

4 回答 4

4

由于您使用的是 fancybox,您已经在使用 jQuery,那么您可以使用jQuery ajax来实现您想要的。

检查此jQuery Ajax POST以供参考。

于 2013-09-10T16:26:51.187 回答
0

jquery 的 ajax 方法非常强大,它可以根据需要处理所有内容。

在 jquery 中,有多种方法可以根据您的要求执行 AJAX 调用,但所有这些都是 jquery ajax 方法的同义词。

如果你想对所有这些事情使用 ajax 方法,你必须根据你的要求传递各种参数

 $.ajax({
    'url':you url,
    'type':request type,
    'data':your data,
    'success':success handler function,
    'error':error handler function,
    /*and many more*/
    )}

Ajax 是一种异步通信机制,可以使用 XMLHttpRequest (xhr) 或 jquery 来实现。

于 2013-09-10T16:35:12.350 回答
0

尝试将 echo 语句放入格式化为打印行的单独文件中

行.php

<?php
$line =  '<a class=\"fancybox\" id=\"inline\" href=\"#data' . $limit . '\">Read more</a>' ;  
$line .=  '<div style=\"display:none\"><div id=\"data' . $limit . '\"><h2  class=\"innertitle\">' . $item['linktitle'] . '</h2>' . $item['descriptionfull'] . '</div> </div>';

?>

然后您可以根据需要包含行文件。这使得行文件可重用并且打印页面更易于阅读

<?php

include("lines.php");

echo $lines ;

?>

我希望这回答了你的问题

于 2013-09-10T16:42:05.840 回答
0

您想要实现的(动态加载页面的一部分而不重新加载整个页面)确实是可能的。

这就是所谓的 AJAX。

您应该阅读一些关于此的内容,因为它可能比您可能已经使用 php / javascript 所做的更复杂。

我建议你试试jquery

如果您现在觉得它太复杂,唯一的解决方案是在您单击链接时重新加载整个页面,这样您就可以使用 $_POST 数据重建您的页面,就像以前一样。不过,这对您的用户来说会变得不那么无缝。

于 2013-09-10T16:27:00.383 回答