这很难用标题来概括。我将 CodeIgniter 与 jQuery Mobile 一起使用。我有一个带有下拉列表的页面(index.php),单击时会提交表单(onChange)。
<select name="organiser_dropdown" onchange="this.form.submit()">
它工作正常。所以它让我毫无问题地进入下一页(view_events)。但是,当我按下移动设备(Samsung Galaxy S Plus)上的“返回”按钮,并从 index.php 的下拉列表中选择一个选项时,表单提交时,我会使用正确的信息转到正确的页面(view_events) ,然后它带我回到带有下拉列表的页面。
没有重定向,代码逻辑似乎是正确的。当我在桌面浏览器中测试它时,一切正常。
我几乎可以肯定问题是手机正在缓存页面,所以当我点击返回 index.php 时,它不会重新加载页面,并且不知何故这会破坏它?我认为这是缓存,因为页面似乎不需要时间来重新加载。
我使用了提交按钮而不是 onChange() 函数,一切正常。这也表明这是缓存的问题。
我使用 jQuery 来监听 onChange 事件并通过单击隐藏按钮来提交表单。它工作没有问题,但它加载了下拉列表仍然出现在电话 GUI 上的页面。出于可用性的原因,这似乎有点奇怪,如果我把它作为一个选项的话。
它不是原生手机应用程序,它是一个移动网站。
在 CodeIgniter 中,控制器正在使用具有 1 个参数的函数,该参数是从下拉列表中选择的项目:
public function view_events($organiser_type = '') {...}
当 *$organiser_type* 没有通过 url 发送时,我有一段代码从 POSTed 表单中检索值:
if($this->input->post('organiser_dropdown')) {
$organiser_type = $this->input->post('organiser_dropdown');
}