2011-08-19 90 views
0

我使用的代碼工作正常,但我試圖從成功函數加載新頁面時有點卡住。最簡單的方法是,如何過濾來自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'; 
    } 
?> 

回答

1
<?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); 
    } 
}); 
+0

3nigma是在ajax $ .mobile.changePage(「admin/index.php /」,{transition:「slideup」})中加載頁面的正確方法。還是有其他一些方法?因爲我是新的,我想覆蓋所有的基地。謝謝 – bollo

+0

如果它的工作,那麼可能它確定:) – Rafay

1

沒有什麼用,如果這樣,那麼您Ajax回調jQuery代碼中的語句,你可以使用阻止你:

if (data == 'Unknown User') { 
    alert('Unknown User'); 
} else { 
    //Do some other stuff here 
} 
1

您可以檢查請求,如果它是ajax請求並僅輸出ajax部分所需的內容。

if(strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') 
    { 
     //request by ajax 
    } 
    else 
    { 
     //regular request. 
    }