jQuery页面刷新不读取或执行php

时间:2012-03-09 19:15:21

标签: php jquery html css ajax

对不起,如果标题有点......模糊,我无法把它钉住。

所以我正在开发一个朋友请求系统,我觉得它的概念类似于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>
                &nbsp; || &nbsp;
                <a href="#" onclick="return false" onmousedown="javascript:denyFriendRequest(' . $requestID . ');">Deny</a>
                </span></td></tr>
                </table>';
            }
        }
        ?>

1 个答案:

答案 0 :(得分:2)

我认为您遇到了问题,因为您的updateFriendBox.php返回的太多了。删除所有内联JS代码,将其放在包含文件中,并将其包含在myaccount.php中。您还不应在updateFriendBox.php文件中包含<head> and <body>个部分。

此处的ajax调用不会创建一个全新的页面,您需要添加其他HTML才能添加到原始页面。

所以你唯一应该拥有的是每个数据行的SQL查询,循环和HTML输出。