1

这很难用标题来概括。我将 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');
    }
4

1 回答 1

1

我有点想通了这里的问题。我认为一旦我按下手机上的后退按钮,jQuery Mobile 并没有完全执行 index.php 页面。

我把它放在我所有的链接中,以强制加载没有 ajax 的页面:

data-ajax="false"

可以在此处找到有关此的更多信息:http: //jquerymobile.com/test/docs/pages/page-links.html

于 2012-07-24T00:09:58.463 回答