使用ajax自动刷新更新.text()

时间:2012-02-11 11:52:58

标签: php jquery ajax

当我在名为signin.php的文件中设置会话时:

$user = 'john';
$_SESSION['user'] = $user;

echo "
<script>
$.ajax({
    url: 'array.php', 
    type: 'post',
    data: {'user': $user}
});
";

在另一个文件(index.php)中,我想得到:

<?php

session_start();

echo "log in as <span id=\"user\"></span><br/>"; 
$user =  $_POST['user']

echo "
<script>
$('#user').text(function() {
    setInterval(function(){
        $('#user').load($user).fadeIn(10);
    }, 1000);
</script>
";

?>

我知道我完全搞砸了代码。我想要的是,当在signin.php文件中设置会话时,我希望“登录为$user”中的内容中的$user自动更新而不刷新页面,任何帮助都将非常感谢!

2 个答案:

答案 0 :(得分:0)

尝试以下方法:

<?php
    $user = 'john';
    $_SESSION['user'] = $user;
?>

<script type="text/javascript">
    $.ajax({
        url: 'array.php', 
        type: 'post',
        data: { 'user': <? echo json_encode($user) ?> }
    });
</script>

答案 1 :(得分:0)

首先,努力更有效地格式化代码。您发布的代码到处都是。这是一个不好的做法,进入并导致错误,错误和其他因格式化而难以找到的效果。

如果我按照您正在执行的操作,当有人登录然后点击index.php页面时,您希望能够从另一个文件加载用户的信息用户数据异步?

<强> signin.php

您的代码令人困惑的是它似乎在做什么;你只是没有告诉我们足够的代码和解释来理解工作流程的含义。

例如,在signin.php中,您echo <script>执行$.ajax()请求的signin.php代码,但是谁/什么获得了这段代码?如果用户成功登录,这是signin.php内容的一部分吗?这是否意味着$.ajax()将加载页面以在此处使用$.ajax(),或者是否意味着从 success运行<script>

如果是后者,则需要返回没有标记的常规Javascript(例如围绕它的dataType: 'script'标记)并在选项中使用array.php

另外,我至少会使用比userdata.php更具描述性的词;如果您从中获取用户数据,请将该文件命名为$user = 'john'; $_SESSION['user'] = $user; echo " <script> $.ajax({ url: 'userdata.php', type: 'post', dataType: 'script', data: 'json=' + jQuery.serialize({user: '$user'}) }); ";

userdata.php

然后在$_POST['json']中,您可以使用$('#user').text(function() { setInterval(function(){ $('#user').load($user).fadeIn(10); }, 1000); ); 访问它。

<强>的index.php

老实说没有道理:

setInterval()

为什么设置$.text()时匿名函数中的$user = $_POST['user'] <<< Note here, you need a ; at the end 会运行?这是其中一个 What?时刻,我甚至不确定你想要完成什么。

在此之前,你有:

$_POST

为什么这是signin.php$_POST是否使用$_SESSION来记录用户?在这里,我相信你想要signin.php(我想,希望,??),因为当用户使用<?php session_start(); $user = $_SESSION['user']; echo "log in as <span id=\"user\"></span><br/>"; echo " <script> $.ajax({ url: 'userdata.php', type: 'post', data: 'json=' + jQuery.serialize({user:'$user'}), dataType: 'json', success: function(data){ $('#user').text(data.fullname); } }); </script> "; ?> 登录时,你存储了用户名。

这是我对您尝试做的最好的猜测(假设您正在返回JSON格式的数据):

{{1}}