使用$ .getJSON来检索php变量php

时间:2014-07-31 16:44:48

标签: php variables mysqli getjson

您好我正在尝试使用$.getJSON从另一个php文件中检索数据。但是我对JSON有点新意,所以我在这里和那里都缺少一些东西。不知道有人可以帮助我填补空白。目前我试图让细节显示在控制台中。

  <script type="text/javascript">
$(document).ready(function(){
$(".login_a").click(function(){
    $("#shadow").fadeIn("normal");
    var test = $(this).attr('data-id');
    var topost = 'getMilestoneDetail.php='+test;
    var returnResults = $.getJSON('getMilestoneDetail.php?id='+test,function(data)
    {
        console.log(data.projectName + " " + data.budget);
    });      
});
</script>

$id = $_GET['id'];

$sql = "SELECT * FROM projectmilestone where ID = '$id' ";
$query = mysqli_query($con,$sql);


while($row = mysqli_fetch_array($query, MYSQLI_ASSOC)){ 
    $projectName =$row['projectName'] ;
    $budget = $row['budget'];
    $id = $row['ID'];
    $mile1 = $row['mileStone1'];
    $mile2 = $row['mileStone2'];
    $mile3 = $row['mileStone3'];
    $percent1 = $row['percentage1'];
    $percent2 = $row['percentage2'];
    $percent3 = $row['percentage3'];
}
echo json_encode($row);

1 个答案:

答案 0 :(得分:1)

UPDATE2 :因为我猜你只得到一个结果行,所以根本不需要while循环。我的错,因为$row无法从循环外部访问。所以只需用以下代码替换你的while循环:

$row = mysqli_fetch_array($query, MYSQLI_ASSOC);

然后你只需输出第一行$row[0]

echo json_encode($row[0]);

这将显示一个看起来像

的json字符串
{"projectName":"abc...", "budget":"12345", .... }

等等。

在您的JavaScript中

我不知道您的POST变量在哪里。而是使用GET变量尝试$ .getJSON函数。加上(更新)您的json对象将返回到匿名回调函数的参数“data”:

$.getJSON('getMilestoneDetail.php?id=' + test, function(data)
{
    //your returned data is saved in the variable "data" which is passed in the anonymous function above
    console.log(data.projectName + " " + data.budget);
});

然后你必须在PHP脚本中寻找一个get变量。 所以替换:

$id = $_POST['id'];

使用:

$id = $_GET['id'];

更新:我对javascript部分进行了更改,因为否则不会返回任何内容。