【问题标题】:using $.getJSON to retrieve php variable php使用 $.getJSON 检索 php 变量 php
【发布时间】:2014-08-01 01:30:27
【问题描述】:

您好,我目前正在尝试使用$.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);

【问题讨论】:

  • 你的方法都不返回任何东西。你只是得到数据。您需要查看 json_encode 并编写输出。
  • 你有什么链接或例子可以告诉我吗?
  • 这可能看起来微不足道,但您正在连接到您的 MySQL 数据库,对吗?上面的代码看起来像是包含了你正在做的所有事情。但是缺少的是您的连接处理程序...

标签: php variables mysqli getjson


【解决方案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 函数。加上(update)你的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 部分进行了更改,否则它不会返回任何内容。

【讨论】:

  • 我试过了,但是在控制台中它仍然是空的。目前代码如下所示
  • 查看我对 javascript 部分的更新。 $.getJSON 不返回 json 对象本身 - 它返回一个 jqxhr 对象。使用匿名回调函数的参数“data”返回您的 json 对象。
  • 如果您在浏览器中输入网址,使用开发人员工具,您会看到什么返回?
  • 我刚刚更新了它。但是,当我打开控制台时仍然是空的。我现在正在运行的代码在上面我更新了它
  • @Ich 你还没有用$id = $_GET['id'];替换$id = $_POST['id'];
猜你喜欢
  • 2015-09-17
  • 1970-01-01
  • 1970-01-01
  • 2015-05-23
  • 1970-01-01
  • 2019-01-01
  • 1970-01-01
  • 2014-10-01
  • 2017-05-10
相关资源
最近更新 更多