如何从客户端刷新嵌入式PHP代码?

时间:2015-07-31 21:38:33

标签: php jquery html

基本上,只需单击一个按钮,我就需要刷新包含嵌入式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文件相同的目录中,它也似乎不容易找到。

1 个答案:

答案 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/