Ajax响应没有带来数据

时间:2016-08-14 08:34:08

标签: javascript php jquery mysql ajax

我正在制作一个网页,我从我的数据库中获取测验问题,并在我的页面中显示它们,即时通讯使用带有php和MySQL的ajax,我正在尝试这样做:

    $.ajax({
    url:'../servicios/obtenerPregunta.php',
    type:'post',
    data:{

    },
    dataType:'json',
    success: function(response){
      var contenedorPreguntas = document.querySelector('.cont-pregunta-examen');
      contenedorPreguntas.innerHTML = response[0]['pregunta'];
    },
    error:function(request, error){
      alert(error);
    }
  });

这是我的php:

<?php

require_once 'login.php';
$conexion = new mysqli($host_name,$user_name,$password,$data_base);

if($conexion->connect_error)die($conexion->error);

  $sentencia_sql = "CALL pa_obtener_preguntas";

  $resultado = $conexion -> query($sentencia_sql);

  if (!$resultado) die('Fallo la consulta a la BD, favor revisar la sentencia sql');

  $preguntas = array();

  while($pregunta = mysqli_fetch_assoc($resultado)) {
  $preguntas[]=$pregunta;
    }

   echo json_encode($preguntas);

?>

我总是使用这种方法并与其他项目一起工作,但在这种情况下它不会从我的数据库中带来任何东西,我的意思是,它没有显示任何错误或问题,它只是没有数据从数据库带来的地方我得到了程序,我测试,工作正常,我的login.php很好,一切正常,但我不知道为什么****这不工作

1 个答案:

答案 0 :(得分:0)

可能的原因可能是因为Ajax将响应转换为对象,而不是常规数组,并且您无法使用[0]来获取对象的第一条记录。

使用:

first = response[Object.keys(response)[0]]; //gets the first object
contenedorPreguntas.innerHTML = first['pregunta'];

Here's a demo