从成功jQuery ajax加载页面
问题描述:
我使用的代码工作正常,但我试图从成功函数加载新页面时有点卡住。最简单的方法是,如何过滤来自php后端的数据以作出决定?例如,我在后端testajax.php页面和ajax成功函数测试中为某些条件设置了一个条件。在PHP中,它将沿着使用if语句的方向发展。我对jquery很新,所以希望得到一些关于如何实现这一点的指导。由于从成功jQuery ajax加载页面
$.ajax({
type: "POST",
url: "testajax.php",
data: data,
success: function (data) {
$('#login_message').html(data);
//$(ok).val('Logged In');
//$("#login").get(0).reset();
//$("#form").dialog('close');
$.mobile.changePage("admin/index.php/", { transition: "slideup"});
},
error:function (xhr, ajaxOptions, thrownError){
alert('There was an exception thrown somewhere');
alert(xhr.status);
alert(thrownError);
}
});
testajax.php
<?php
// test wether the user session is already set
session_start();
$userpost = mysql_real_escape_string($_POST['user']);
if (!isset($_SESSION['user'])) {
$_SESSION['user'] = $userpost;
if($_SESSION['user']=='admin') {
echo 'Welcome Admin';
// for example, test data in ajax for
// this flag and if equal 1 then load admin/index.php
$flag = 'admin';
// end of flag
echo $flag;
}
else
echo 'Unknown User';
}
?>
答
<?php
// test wether the user session is already set
session_start();
$userpost = mysql_real_escape_string($_POST['user']);
if (!isset($_SESSION['user'])) {
$_SESSION['user'] = $userpost;
if($_SESSION['user']=='admin') {
$flag = 'admin';
echo $flag;
}
else
echo 'Unknown User';
}
?>
ajax的一部分
$.ajax({
type: "POST",
url: "testajax.php",
data: data,
success: function (data) {
$('#login_message').html(data);
if(data==='admin')
{
//redirect
$.mobile.changePage("admin/index.php/", { transition: "slideup"});
}
},
error:function (xhr, ajaxOptions, thrownError){
alert('There was an exception thrown somewhere');
alert(xhr.status);
alert(thrownError);
}
});
答
没有什么用,如果这样,那么您Ajax回调jQuery代码中的语句,你可以使用阻止你:
if (data == 'Unknown User') {
alert('Unknown User');
} else {
//Do some other stuff here
}
答
您可以检查请求,如果它是ajax请求并仅输出ajax部分所需的内容。
if(strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest')
{
//request by ajax
}
else
{
//regular request.
}
3nigma是在ajax $ .mobile.changePage(“admin/index.php /”,{transition:“slideup”})中加载页面的正确方法。还是有其他一些方法?因为我是新的,我想覆盖所有的基地。谢谢 – bollo
如果它的工作,那么可能它确定:) – Rafay