当我在名为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
自动更新而不刷新页面,任何帮助都将非常感谢!
答案 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}}