2012-05-11 21 views
1

下面的腳本使用Ajax發送數據登錄JQUERY - html的(),還可以查看PHP

我想格式化使用返回的數據,在本質上,一個session變量($ _SESSION)

我能做到

$("#login").click(function(){ 

username=$("#user_name").val(); 
password=$("#password").val(); 
$.ajax({ 
    type: "POST", 
    url: "inc/login.inc.php", 
    data: "username="+username+"&password="+password, 
    success: function(msg){ 
     if(msg!='false') 
     { 
     $("#login_form").fadeOut("normal"); 
     $("#shadow").fadeOut(); 
     $("#profile").html("<\?php print(\"$_SESSION['name'].\" <a href='inc\/logout.inc.php' id='logout'>Logout k2<\/a>\");\?>"); 
     //valori menù 
     if(tipo=='1') 
     {$("#admin").css('display','none')} 

     } 
     else 
     { 
      $("#add_err").html("Username o password errata"); 
     } 
    }, 
    beforeSend:function() 
    { 
     $("#add_err").html("<img hspace='84' src='img/loading.gif' alt='Loading...' width='32' height='32'>") 
    } 
}); 
return false; 

});

特別是這是可能的,這樣就會打印剛登錄的用戶的名字。否則我不知道該怎麼辦

$("#profile").html("<\?php print(\"$_SESSION['name'].\" <a href='inc\/logout.inc.php' id='logout'>Logout k2<\/a>\");\?>"); 

回答

4

腳本已經被處理後,你不能插入PHP代碼。

要麼通過ajax將其拉入,要麼將實際的PHP輸出包含到您的javascript中。

即page.php文件

<script> 
     var sessionName = '<?php echo $_SESSION['name']; ?>'; 
    </script> 

那麼當你需要它以後

$("#profile").html(sessionName + " <a href=\"inc/logout.inc.php\" id=\"logout\">Logout k2</a>"); 
1

JavaScript是客戶端,它根本不能執行PHP代碼。

您必須在您的ajax請求中使用的php文件中返回某些內容(例如用戶名),並在您的JS中使用該文件。

查看jQuery ajax docs的例子。

0

你需要服務的PHP代碼:

$("#profile").load("inc/login-header.inc.php"); 

登錄-的header.inc.php

<?php 
    print($_SESSION['name'] . " <a href='inc/logout.inc.php' id='logout'>Logout k2</a>"); 
?> 
0

發送信息從PHP腳本返回JavaScript的最簡單的方法,是通過使用msg變量在

success: function(msg){ 

如果你只是想發回一個st環,你只需要echo那一個字符串在你的php文件中,你將在msg中獲得它的值。如果您想要發回多個變量,您可以將結果打包到一個json對象中。

因此,假設您想要發送的所有內容都包含在名爲$output的php數組中,您可以在php腳本的末尾執行echo json_encode($output);以獲取msg中的所有內容。

0

這將不起作用,因爲PHP代碼從不處理。

login.inc.php嘗試這樣的事情

<?php 
if (!loginOK()){ 
    echo "{login:false}"; 
} else { 
    echo "{login:true, name:'".$_SESSION['name']."'}"; 

} 

,然後在客戶端上

success: function(msg){ 
    if (msg.login){ 
     // stuff 
    } else { 
     $("#profile").html(msg.name + $('<a>').attr('href', 'logout.php').html('logout')); 
    } 
}