我正在为现有的 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。