我无法理解我正在尝试开发的网站上的概念(我对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),页面本身变得非常大,需要很长时间才能加载。
所以,如果可能,我想要实现的是获取'read more'链接指向网站上的另一个php文件,加载时会动态引入php变量。这样可以保存描述性变量,使其无法加载到主页面上,因此只应在单击相关的readmore链接时加载。
这可能吗?欢呼声。
答案 0 :(得分:4)
由于您使用的是fancybox,您已经在使用jQuery,因此您可以使用jQuery ajax来实现您的目标。
选中此jQuery Ajax POST作为参考。
答案 1 :(得分:0)
您想要实现的目标(动态加载页面的一部分而不重新加载整个页面)确实是可能的。
这就是所谓的AJAX。
你应该读一下这个,因为它可能比你用php / javascript做的更复杂。
我建议你试试jquery。
如果您现在发现它太复杂,唯一的解决方案是在您点击链接时重新加载整个页面,这样您就可以使用$ _POST数据重建您之前的页面。尽管如此,这对您的用户来说将更加无缝。
答案 2 :(得分: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实现。
答案 3 :(得分:0)
尝试将echo语句放入格式化为打印行的单独文件中
lines.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 ;
?>
我希望这能回答你的问题