我对数据库的查询是使用AJAX,当你点击一个链接时,html会从数据库中返回一个列表。 我的javascript代码:
$(document).ready(function() {
$('.gnr a').on('click', function(){
var title = $(this).attr('title');
$.ajax({
async:true,
type: "POST",
dataType: "json",
contentType: "application/x-www-form-urlencoded",
url:"recibe.php",
data:"titulo="+title,
beforeSend:inicioEnvio,
success:llegadaDatos,
timeout:4000,
error:problemas
});
});
});
function inicioEnvio()
{
$(".lista-usuario").html('<img src="loading.gif">');
}
function llegadaDatos(respuesta) {
$(".lista-usuario").html(respuesta.datos1);
$(".lista_usuario").html(respuesta.datos2);
$("#art-list").html(respuesta.datos3);
}
function problemas(){$(".lista-usuario").text('Problemas en el servidor.');}
我的功能有问题 html(respuesta.datos1)和html(respuesta.datos2)显然存在冲突。有时候&#34; data1&#34; = null其他时间&#34; data2&#34; = NULL。请问如何纠正这个问题?
答案 0 :(得分:0)
怎么样:
function llegadaDatos(respuesta) {
var usuario = resupesta.datos1 || respuesta.datos2;
if (usuario) {
$(".lista-usuario").html(usuario);
}
$("#art-list").html(respuesta.datos3);
}
答案 1 :(得分:0)
试试这个:
$.ajax({
async:false,
type: "POST",
dataType: "json",
contentType: "application/x-www-form-urlencoded",
url:"recibe.php",
data:"titulo="+title,
beforeSend:inicioEnvio,
success:llegadaDatos,
timeout:4000,
error:problemas
});
“async:false”可以解决您的问题。
答案 2 :(得分:0)
您需要将响应作为参数传递给successhandler
$.ajax({
async:true,
type: "POST",
dataType: "json",
contentType: "application/x-www-form-urlencoded",
url:"recibe.php",
data:"titulo="+title,
beforeSend:inicioEnvio,
success:llegadaDatos(response), //<< !-important, your function expects an argument you didnt pass
timeout:4000,
error:problemas
});
});
答案 3 :(得分:0)
if(typeof respuesta.datos1 != undefined){
$(".lista-usuario").html(respuesta.datos1);
}