jQuery,Ajax从数据库获取数据

时间:2013-02-21 16:12:55

标签: php jquery sql ajax variables

我试图通过jQuery,Ajax和PHP从SQL数据库中获取数据。

这是jQuery代码

$.ajax({
    url: 'OpenQuiz.php',
    data: '',
    dataType:'json',
    success: function(data) {
        var one = data[0];
    }
}

$(document).ajaxComplete(function(event,request,settings) {
    alert("check");
}

以下是名为“OpenQuiz.php”的PHP文件末尾的json编码行

echo json_encode($QuizName);
echo json_encode($options);
echo json_encode($votes);
echo json_encode($row_num);
echo json_encode($percentage);
echo json_encode($TruncPercentage);

请注意: $ options,$ votes,$ Percentage和$ TruncPercentage都是二维数组。 $ row_num是一个整数。 $ Quiz_Name是一维数组。

我发现jQuery运行正常并且调用了ajax请求,因为“check”的警告框出现了。问题是我不知道如何在转移后访问变量。我知道它与data [0]有关但我真的不明白“data [0]”的意思或它代表什么。基本上我如何使用PHP文件中的json_encode访问我发送的变量?

1 个答案:

答案 0 :(得分:1)

data [0]是返回的数组中的第一个json_encoded项。你不应该单独json_encode所有,你应该建立一个数组和json_encode这个。

$items = array('QuizName'=>$QuizName,'options'=>$options, ... ,'TruncPercentage'=>$TruncPercentage);

echo json_encode($items);

然后你用:

检索
success: function(data) {
    var qn = data.QuizName,
        opt = data.options;
}

对于每个项目,依此类推,数据。[whatever]和[whatever]是你在数组中给出它的项目的名称。我知道我最初说是通过索引(data [0])检索,但我更喜欢明确检索,以便代码更易于维护。

作为旁注,您可以通过在PHP端正确设置标题来消除ajax调用中的datatype:'json'声明:

header('Content-type: application/json');

将其放在文档顶部会强制服务器将页面识别为json。比jQuery寻找它更加一致和明确。