加载php文件+获取变量+ ajax重新加载

时间:2016-02-07 19:32:57

标签: javascript php ajax

我有一个在以下链接上运行良好的php文件: http://localhost/results.php?uid=1

<?php
mysql_connect("localhost", "root", "") or die(mysql_error());
mysql_select_db("database") or die(mysql_error());

$logged_in_user = $_GET['uid'];

$query = "SELECT * FROM oc2_users WHERE id_user = $logged_in_user";
$result = mysql_query($query);

while($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
    $results = $row['points'];
}

echo $results;
?>

我希望将此文件放在其他页面上,并希望每秒重新加载一次。使用以下脚本:

<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
<script>


    function refresh_div() {
        jQuery.ajax({
            url:'http://localhost/results.php?uid=1',
            type:'POST',
            success:function(results) {
                jQuery(".result").html(results);
            }
        });
    }

    t = setInterval(refresh_div,1000);
</script>

当我加载第二页时,它返回:“Undefined index:uid”。 我哪里错了?我怎样才能确保变量也通过?感谢

2 个答案:

答案 0 :(得分:1)

你的AJAX请求是通过POST方法,你的PHP接受GET请求 只需要纠正一样。您可以使用Either,但PHP和&amp;请求AJAX应该具有相同的功能。

jQuery部分

$(function () {

    $.ajax({

        url: "http://localhost/results.php",
        data:  {uid: 1},
        type: "GET",
        dataType: 'html',
        success: function(data) { console.log(data); }

    });
});

PHP部分

<?php

    if (isset($_GET['uid']))
    {
        echo 'This is the UID = ' . $_GET['uid'];
    }

?>

答案 1 :(得分:0)

谢谢你所有的驴子。你帮了很多忙。 解决方案:@Kanudo建议但它只适用于POST。您可以在下面找到有效的代码:

<?php
mysql_connect("localhost", "root", "") or die(mysql_error());
mysql_select_db("database") or die(mysql_error());

$logged_in_user = $_POST["uid"];

$query = "SELECT * FROM oc2_users WHERE id_user = $logged_in_user";
$result = mysql_query($query);

while($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
    $results = $row['points'];
}

echo $results;

?>

和jQuery:

<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
<script>


    function refresh_div() {
        jQuery.ajax({
            url:'http://localhost/results.php',
            type: 'POST',
            data: {uid: 1},
            success:function(results) {
                jQuery(".result").html(results);
            }
        });
    }

    t = setInterval(refresh_div,1000);
</script>