我正在制作一个网页,我从我的数据库中获取测验问题,并在我的页面中显示它们,即时通讯使用带有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很好,一切正常,但我不知道为什么****这不工作
答案 0 :(得分:0)
可能的原因可能是因为Ajax将响应转换为对象,而不是常规数组,并且您无法使用[0]
来获取对象的第一条记录。
使用:
first = response[Object.keys(response)[0]]; //gets the first object
contenedorPreguntas.innerHTML = first['pregunta'];