更新数据库后在jQuery移动站点中更新动态PHP

更新数据库后在jQuery移动站点中更新动态PHP,php,jquery,jquery-mobile,mobile,refresh,Php,Jquery,Jquery Mobile,Mobile,Refresh,假设我在jQuery移动网站上有2个页面 Page1-使用内嵌PHP显示数据库中的数据 第2页-将新数据插入数据库 问题是,在page2向数据库添加内容后,返回时page1没有更新。我可以通过按F5进行更新,但如何使用jQuery实现相同的更新?我对jQuery Moblie不是很熟悉,但我发现: function refreshPage() { jQuery.mobile.changePage(window.location.href, { allowSamePageTr

假设我在jQuery移动网站上有2个页面

Page1-使用内嵌PHP显示数据库中的数据

第2页-将新数据插入数据库


问题是,在page2向数据库添加内容后,返回时page1没有更新。我可以通过按F5进行更新,但如何使用jQuery实现相同的更新?

我对jQuery Moblie不是很熟悉,但我发现:

function refreshPage()
{
   jQuery.mobile.changePage(window.location.href, {
        allowSamePageTransition: true,
        transition: 'none',
        reloadPage: true
    });
}
我认为将页面重新加载为true应该可以做到这一点

如果这不起作用,请查看以下答案:


希望这有帮助

我认为您正在使用
pageinit
事件在第1页显示数据。这将只触发一次,并且不会在每次添加新数据时更新数据

您需要使用第1页的
pagebeforeshow
事件从数据库中获取数据。这样,每次都会带来新的数据,这正是您所需要的。这里有一个语法:

 $(document).on("pagebeforeshow", "#page1", function() {
      //call to server
 });

如果未使用
pageinit
,则必须使用
document.ready
事件来获取数据。嗯,就是这样做的。您不能将
ready
与jquery mobile一起使用。DOM
ready
将初始化整个文档,这将使jQM的
ajax
页面更改功能变得毫无意义和无用。

昨晚已经很晚了,我错过了使用ajax获取内联php内容的机会

我就是这样解决的:

  • 在单独的文件中使用PHP移动所有包含动态内容的内容
  • 在加载PHP文件的页面底部添加Ajax调用,如下所示:

    $(document).on('pagebeforeshow', function(){
        $.ajax({
             type: "GET",        
             url: "includes/db/ajax_show_php_content.php",       
             success: function(html) {
                $("#page1").html(html); //Insert PHP content
            $("#page1").trigger('create'); //Apply jQuery Mobile style to it.
        });                 
    }); 
    
  • 感谢@hungerpain和@anglinb帮助我们解决了这个问题