以下脚本使用 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>");?>");
处理完毕后,无法插入 PHP 代码。
要么通过 ajax 拉入它,要么将实际的 PHP 输出包含在你的 JavaScript 中。
即,在页面中.php
<script>
var sessionName = '<?php echo $_SESSION['name']; ?>';
</script>
然后当你以后需要它时
$("#profile").html(sessionName + " <a href="inc/logout.inc.php" id="logout">Logout k2</a>");
JavaScript 是客户端的,它根本无法执行你的 php 代码。
您必须在 ajax 请求中使用的 php 文件中返回一些内容(例如用户名),并在 JS 中使用它。
有关示例,请参阅 jQuery ajax 文档。
你需要提供 php 代码:
$("#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>");
?>
将信息从 php 脚本发送回 javascript 的最简单方法是使用 msg
变量
success: function(msg){
如果你只想发回一个字符串,你只需在你的php文件中echo
那个字符串,你的值就会在msg
。如果要发回多个变量,可以将结果打包在 json 对象中。
因此,假设您要发回的所有内容都包含在名为 $output
的 php 数组中,您可以在 php 脚本的末尾执行echo json_encode($output);
以msg
获取整个内容。
行不通,因为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'));
}
}