2013-02-21 183 views
0

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

这里是jQuery代码

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

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

这里是JSON编码线在被称为 “OpenQuiz.php” 的PHP文件的末尾

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); 

请注意: $选项,$票,$百分比和$ TruncPercentage都是二维数组。 $ row_num是一个整数。 $ Quiz_Name是一个一维数组。

我发现jQuery运行良好,并且调用了ajax请求,因为显示“check”的警告框。问题是,我不知道如何访问变量后,他们已被转移。我知道它与数据[0]有关,但我并不真正了解“数据[0]”的含义或其所代表的含义。基本上如何访问我在PHP文件中使用json_encode发送的变量?

回答

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; 
} 

等了每个项目,用数据[无论]和[无论]是你给它数组中的项目的名称。我知道我最初说索引(数据[0])检索,但我更愿意显式检索,以便代码更易于维护。

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

配售,在该文件的顶部将在服务器强制:

作为一个侧面说明,你可以通过简单地正确设置标题在PHP端消除你的Ajax调用datatype:'json'声明将页面识别为json。比jQuery寻找它更加一致和明确。

+0

如何在PHP中创建一个变量数组(这是不同类型的)? – 2013-02-21 16:23:59

+0

用简单的例子编辑我的答案。 – PlantTheIdea 2013-02-21 16:30:43

+0

有道理。因此,由于$ QuizName是一个二维数组,因此要访问该数组中的单个值,我将不得不使用data.QuizName [x] [y],其中x和y定义了二维数组中值的位置? – 2013-02-21 16:34:30