0

我正在为现有的 php 后端创建移动扩展。因此,我一直在为此尝试 Jquery Mobile。

我正在尝试从 php 后端生成动态内容,发送存储的本地数据以根据用户 ID 等生成所需的结果。这让我有点困惑,jqm 并不是为这些类型的使用准备的“更多”。

无论如何,我一直在使用以下示例在 div 区域内插入动态内容:

$(document).on('pageinit', "#orders",function () {

  var uid = localStorage.getItem('uid');
  var mobilecode = localStorage.getItem('mobilecode');
  var company = localStorage.getItem('company');

  $("#orders_data").load("orders_data.php", {uid: uid, mobilecode: mobilecode, company:company}, function(){
  $('#orders_data').trigger('create');
  });  

});

这是一个php后端的例子。顶级 php 文件是数据库和站点设置以及来自发布数据的用户验证/详细信息。

<?php

define("AJAX_HTML", true); 
require($_SERVER[ 'DOCUMENT_ROOT']. "/config/init.php"); 
require("init_ajax_handler.php"); 

?>

<div id="accordion-orders" data-role="collapsible-set" data-inset="false" data-filter="true" data-theme="c" data-content-theme="d" data-collapsed-icon="bars" data-expanded-icon="info">
  <div data-role="collapsible">
     <h3>Order ID</h3>

    <p>Notes</p>
  </div>
  <div data-role="collapsible">
     <h3>Order ID</h3>

    <p>Notes</p>
  </div>
</div>

<?php echo "<pre>"; print_r($_POST); echo "</pre>"; ?>

此方法有效并将动态内容放入#orders_data,但每 3 或 4 次失败,导致内容应该在的位置出现白屏。div 实际上是空的!如果我再次刷新它就可以了。移动测试和桌面测试也是如此。php 后端是硬编码的,用于测试目的,所以我知道它每次都发送 jqm 格式的数据,并且所有需要的发布数据也由后端接收。

有人知道为什么有时会失败吗?或者有更好的方法将 php 数据提取到 jqm 中?

最重要的是,我想通过菜单触发以及 get 或 postdata 直接调用完整的页面“orders.php”,而不是更新 div。

4

0 回答 0