Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php jQuery,Ajax从数据库获取数据_Php_Jquery_Sql_Ajax_Variables - Fatal编程技术网

Php jQuery,Ajax从数据库获取数据

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

我试图通过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");
}
下面是名为“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');