Php jQuery,Ajax从数据库获取数据
我试图通过jQuery、Ajax和PHP从SQL数据库获取数据 这是jQuery代码Php jQuery,Ajax从数据库获取数据,php,jquery,sql,ajax,variables,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("c
$.ajax({
url: 'OpenQuiz.php',
data: '',
dataType:'json',
success: function(data) {
var one = data[0];
}
}
$(document).ajaxComplete(function(event,request,settings) {
alert("check");
}
下面是名为“openquick.PHP”的PHP文件末尾的json编码行
请注意:
$options、$votes、$Percentage和$TruncPercentage都是二维数组。
$row_num是一个整数。
$QUITY_Name是一个一维数组
我发现jQuery运行良好,调用ajax请求是因为出现了“check”的警告框。问题是我不知道在变量被转移后如何访问它们。我知道它与数据[0]有关,但我并不真正理解“数据[0]是什么意思或它代表什么。基本上,我如何访问在PHP文件中使用json_encode发送的变量 data[0]是返回的数组中第一个json_编码的项。您不应该对所有内容单独进行json编码,您应该构建一个数组并对其进行json编码
$items = array('QuizName'=>$QuizName,'options'=>$options, ... ,'TruncPercentage'=>$TruncPercentage);
echo json_encode($items);
然后使用以下命令检索:
success: function(data) {
var qn = data.QuizName,
opt = data.options;
}
以此类推,数据为[whater],并且[whater]是您在数组中给它的项的名称。我知道我最初说的是按索引检索(数据[0]),但我更喜欢显式检索,以便代码更易于维护
作为补充说明,只需在PHP端正确设置标题,就可以消除ajax调用中的数据类型:'json'
声明:
header('Content-type: application/json');
将其放在文档顶部将强制服务器将页面识别为json。比让jQuery查找要一致和明确得多。如何在PHP中创建变量数组(不同类型的变量)?很有意义。既然$QuizName是一个二维数组,要访问该数组中的单个值,我必须使用数据。QuizName[x][y]其中x和y定义了该值在二维数组中的位置?很可能,老实说,我还没有尝试过二维数组,但这听起来似乎是可行的。如果不是,最坏的情况是,您可以将数组拆分为php变量,并在json端将它们作为数组中的不同项,然后在jquery端将它们插入不同的变量。此外,还添加了一个关于使用ajax的json页面的提示。以下是我所做的更改。我添加了$items=array('QuizName'=>$QuizName,'options'=>$options,'voces'=>$voces,'row\u num'=>$row\u num,'percentage'=>$percentage,'TruncPercentage'=>$TruncPercentage);。我删除了所有的json编码行,并添加了echo json编码($items);。在jQuery代码中,我删除了var one=data[0];并添加了var qn=data.QuizName,rn=data.row_num;。然后在ajaxComplete函数中添加了警报(qn[1][1]);和警报(rn);。但是,即使这样,我也只能看到“检查”的警报,无法看到qn[1][1]的警报或rn的警报。
header('Content-type: application/json');