我想在加载后触发更改页面。 以下是我使用的代码。 提交后,将在外部站点(使用loadPage)触发数据库操作。这样可行。 接下来,我想更改为发布了guid(唯一ID)变量的另一个页面。
我不能让这个工作。 希望有人可以。提前谢谢。
$(document).on('pageinit', '#page1', function(){
$('form').submit(function(){
var guid = GUID();
$.mobile.loadPage( "http://domain.com/dbaction.php?guid="+guid, {
type: "post",
data: $("form#addtegel").serialize()
});
return false;
$.mobile.changePage ($("#page2"),{ transition: "slideup"} );
});
});
$(document).on('pageinit', '#page2', function(){
DoSomething(guid);
});
答案 0 :(得分:0)
首先,你需要让guid成为一个全局变量。目前,它是您的表单提交的本地,因此它不能在表单提交操作之外访问。
其次,而不是使用loadPage()
- 这是jQuery Mobile的changePage()
调用的内部函数 - 请使用$.ajax()
,如下所示:
var guid;
$(document).on('pageinit', '#page1', function(){
$('form').submit(function(){
window.guid = GUID();
$.ajax({
url: "http://domain.com/dbaction.php?guid="+guid,
type: "post",
data: $("form#addtegel").serialize(),
success: function() {
$.mobile.changePage ($("#page2"), { transition: "slideup"} );
}
});
return false;
});
});
$(document).on('pageinit', '#page2', function(){
DoSomething(window.guid);
});
另外,请注意混合GET和POST数据是一个非常坏的习惯。我在谈论这个网址:"http://domain.com/dbaction.php?guid="+guid
单个请求中只应存在GET或POST数据,而不是两者。是否无法在POST中将guid
传递给dbaction.php
(使用表单中的隐藏字段)?