2

以下脚本使用 ajax 发送数据以进行登录

我想格式化返回的数据,本质上是一个会话变量($ _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

5 回答 5

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>");
于 2012-05-11T16:40:21.173 回答
1

JavaScript 是客户端,它根本无法执行您的 php 代码。

您必须在 ajax 请求中使用的 php 文件中返回某些内容(例如用户名)并在 JS 中使用它。

有关示例,请参阅jQuery ajax 文档

于 2012-05-11T16:42:51.560 回答
0

You'll need to serve the php code:

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

login-header.inc.php

<?php
  print($_SESSION['name'] . " <a href='inc/logout.inc.php' id='logout'>Logout k2</a>");
?>
于 2012-05-11T16:45:54.703 回答
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'));
    }
}
于 2012-05-11T17:44:06.243 回答
0

将信息从 php 脚本发送回 javascript 的最简单方法是msg使用

success: function(msg){

如果你只想发回一个字符串,你只需echo在你的 php 文件中发送一个字符串,你就会在msg. 如果要发回多个变量,可以将结果打包到 json 对象中。

因此,假设您要发回的所有内容都包含在名为 的 php 数组中$output,您可以echo json_encode($output);在 php 脚本的末尾执行 a 以获取整个内容msg

于 2012-05-11T16:51:30.117 回答