好吧所以我有一个div加载一些数据并使整个页面加载缓慢。幸运的是,这些数据可以等待,我想最后加载它。我已经看到过这样的其他帖子,但需要更多帮助才能让它起作用,因为我相当缺乏经验。
例如,我有:
<div id="stuff">
<?php Some PHP Here ?>
</div>
现在我有了
$(window).load(function () {
$('#stuff').load('');
});
一些问题......我是否创建了一个空div然后用数据填充它,或者我可以将数据放在那里然后指定加载最后一个,如果可能的话,这将是首选。
我知道我可以加载像$('#stuff').load('stuff.php');
这样的网页,但是我在div中使用了一个变量,那么如何将它传递给该加载函数并进入php页面呢?
我只是不知道如何在每次加载div时将变量传递到javascript,因为它是在while循环中。
感谢您的帮助。
答案 0 :(得分:2)
由于客户端上的javascript进程和服务器端上的PHP运行,因此您无法对已加载的HTML执行PHP操作(页面已从服务器发送到客户端,因此PHP无法访问它。)
由于这个事实,你需要javascript AJAX 。
因为您是初学者,所以我建议您使用 jQuery javascript框架中的 ajax 功能。它与javascript函数的工作方式相同,并自动处理许多操作。
正如您正确推测的那样,您可以先显示空div,然后......在页面完全加载后,您可以调用您的ajax。
这个ajax基本上要求PHP脚本为加载的页面提供将在指定的html元素中显示的数据。
代码应如下所示:
将此内容包含在您加载的内容的PHP文件中:
<script type="text/javascript">http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.js</script> <!--loads jquery framework-->
<script type="text/javascript">
$(document).ready(function() {
//when page is loaded
$.ajax({
url: "ajax.php" //script with your data selection
}).done(function(data) { //when ajax call success
$("#ajax-element").html(data); //insert data returned from ajax.php into div with id ajax-element
});
});
</script>
<div id="ajax-element"></div>
这是PHP ajax文件,它将为您返回数据(只需回显您想要在“ajax-element”div中拥有的所有内容,例如:
<?php
echo "some text";
?>
有关详细信息,您可以找到jquery AJAX规范here。