基本上,只需单击一个按钮,我就需要刷新包含嵌入式PHP的div。我尝试在jQuery中使用.html()来重新加载div的内容,但它并没有改变任何东西,所以我假设它没有回忆PHP(因为PHP应该在这点)。它可能只是在页面加载时重写PHP输出的HTML。我还尝试在新的HTML加载中添加一些东西,这样我就可以看到它至少刷新了HTML代码,而且确实如此。它看起来像(如果" updateObject"是一个包含div位置的变量):
updateObject.html(updateObject.html() + " random text");
我也在使用.load()jQuery方法,但似乎是外部PHP文件(此时我无法将嵌入式PHP更改为外部PHP)。
有什么想法?谢谢!
编辑:我遇到的最大问题是,由于我对web dev的了解有限,我需要嵌入PHP。如果我把它作为一个单独的文件,我很难找到它,因为我真的不明白文件是如何通过我们正在使用的框架(Drupal)组合在一起的。我确实尝试使用外部PHP文件,但我无法弄清楚如何找到它。即使我把它放在与这个HTML文件相同的目录中,它也似乎不容易找到。答案 0 :(得分:0)
您将拥有2个文件:
<强> PHP 强>
这包含您要显示的数据。
<强> HTML 强>
这是显示php内容的那个。
在PHP中,你可以放任何你想要的东西。但加载的HTML一旦被加载,并且获得更多内容的唯一方法是进行所谓的异步调用,这意味着在页面加载后进行调用。
要做到这一点,你要使用jQuery并使用以下语法调用$ .post(或$ .ajax):
$.post('filename.php', function(dataFromPhp){
//actions to do once the php has been read
})
因此,在您的情况下,您可以创建一个函数,每次在div / button /其他DOM对象上完成单击时读取php;像这样:
function updateDivContent(whatDiv){
$.post('filename.php', function(dataFromPhp){
if(dataFromPhp){
$(whatDiv).html(dataFromPhp)
}
})
}
因此,如果您希望刷新div(并重新加载php),您可以将该函数连接到事件并指定要显示数据的div:
$('#myBtn').click(function(){
updateDivContent('#myDiv');
})
有关更多信息,请参阅此文档:https://api.jquery.com/jQuery.post/