【问题标题】:Updating the dynamic PHP in a jQuery Mobile site after updating the database更新数据库后更新 jQuery Mobile 站点中的动态 PHP
【发布时间】:2013-07-16 23:23:47
【问题描述】:

假设我在一个 jQuery Mobile 网站中有 2 个页面。

Page1 - 使用内联 PHP 显示来自数据库的数据。

Page2 - 将新数据插入数据库。

问题是page1在返回时没有更新,在page2向数据库添加了一些东西之后。我可以通过按 F5 来更新它,但是如何使用 jQuery 实现相同的更新?

【问题讨论】:

    标签: php jquery jquery-mobile mobile refresh


    【解决方案1】:

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

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

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

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

    【讨论】:

      【解决方案2】:

      昨晚很晚,我错过了我应该使用 Ajax 获取内联 php 内容。

      所以我就是这样解决的:

      1. 使用 PHP 在单独的文件中移动了包含动态内容的所有内容。
      2. 在页面底部添加一个 Ajax 调用来加载 PHP 文件,如下所示:

        $(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 帮助解决这个问题。

      【讨论】:

        【解决方案3】:

        我对 jQuery Moblie 不是很熟悉,但我发现了以下内容:

        function refreshPage()
        {
           jQuery.mobile.changePage(window.location.href, {
                allowSamePageTransition: true,
                transition: 'none',
                reloadPage: true
            });
        }
        

        我认为将 reloadPage 设置为 true 应该可以解决问题。

        如果这不起作用,请查看此答案:jQuery Mobile Page refresh mechanism

        希望这会有所帮助!

        【讨论】:

          猜你喜欢
          • 2021-06-23
          • 1970-01-01
          • 2013-03-21
          • 1970-01-01
          • 1970-01-01
          • 2013-05-19
          • 1970-01-01
          • 1970-01-01
          • 2015-07-03
          相关资源
          最近更新 更多