对不起,如果标题有点......模糊,我无法把它钉住。
所以我正在开发一个朋友请求系统,我觉得它的概念类似于facebook。所以你得到一个请求,它会在没有页面重新加载的情况下列出它们。
然而,我得到div'刷新'或者所以我认为我不能测试php,这是我有问题的地方,我将在下面发布相关的代码和文件。
它可能看起来有点长,但实际上它不应该太糟糕。我的PHP代码应该继续执行查询,该查询正在查看updateFriendBox.php中的数据库,但它似乎并没有这样做。我的代码也可能很乱,所以我道歉。
myaccount.php
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script language="javascript" type="text/javascript">
function refreshDiv()
{
$.get('updateFriendBox.php', function(data){$('#refresh').html(data);});
}
$(function()
{
refreshDiv();
setInterval(refreshDiv, 5000);
});
function box(x){
if($('#'+x).is(":hidden")){
$('#'+x).slideDown(200);
} else {
$('#'+x).hide();
}
}
</script>
<?php
$addBox = '<div style="display:inline; padding:5px;">
<a href="#" onclick="return false" onmouseup="javascript:box(\'fRequ\');">Show/Hide Friend Requests</a>
</div>';
// a bit further down in the code where its all called:
<a href="#" class="tooltip"><? echo $addBox; ?></span></a>
<div class="friendSlide" id="fRequ" style="height:240px; overflow:auto;">Your friend requests: <br />
<div id="refresh"> <?php // this is where the refresh call is ?>
</div>
</center>
</div>
</div>
</div>
updateFriendBox.php:
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script language="javascript" type="text/javascript">
function acceptFriendRequest(x) {
var url = "friendParse.php";
$.post(url,{ request: "acceptFriend", reqID: x}, function(data){
$("#req"+x).html(data).show().fadeOut(5000);
});
}
function denyFriendRequest(x) {
var url = "friendParse.php";
$.post(url,{ request: "denyFriend", reqID: x}, function(data){
$("#req"+x).html(data).show().fadeOut(5000);
});
}
</script>
</head>
<body>
<?php
include 'dbc.php';
$sql = "SELECT * FROM friendRecu WHERE mem2='" . $_SESSION['user_id'] . "' ORDER BY id ASC LIMIT 10";
$query = mysql_query($sql)or die(mysql_error());
$num_rows = mysql_num_rows($query);
if($num_rows < 1) {
echo "No friend requests";
} else {
while($row = mysql_fetch_array($query)){
$requestID = $row['id'];
$req = $row['mem1'];
$sqlName = mysql_query("SELECT full_name FROM users WHERE id='$req'");
while($row = mysql_fetch_array($sqlName)){
$requesterName = $row['full_name'];
}
echo '<hr /><table width="100%", cellpadding="5"><tr><td width="17%" align="left"><div style="overflow:hidden; height:50px; color:white;"></div></td> <td width="83%"><a href=viewmembers.php?uid=' . $req . '">' . $requesterName . '</a> added you as a friend
<span id="req' . $requestID . '">
<a href="#" onclick="return false" onmousedown="javascript:acceptFriendRequest(' . $requestID . ');">Accept</a>
||
<a href="#" onclick="return false" onmousedown="javascript:denyFriendRequest(' . $requestID . ');">Deny</a>
</span></td></tr>
</table>';
}
}
?>
答案 0 :(得分:2)
我认为您遇到了问题,因为您的updateFriendBox.php返回的太多了。删除所有内联JS代码,将其放在包含文件中,并将其包含在myaccount.php中。您还不应在updateFriendBox.php文件中包含<head> and <body>
个部分。
此处的ajax调用不会创建一个全新的页面,您需要添加其他HTML才能添加到原始页面。
所以你唯一应该拥有的是每个数据行的SQL查询,循环和HTML输出。