2014-04-13 151 views
0

我對數據庫的查詢是使用AJAX,當您點擊一個鏈接時,html會從數據庫返回一個列表。 我的javascript代碼:html()方法避免寫入

$(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)顯然有conflicto問題。有時候「data1」= null其他時間「data2」= null。請問如何糾正這個問題?

+1

你有沒有試着用'異步:FALSE'? –

+0

你需要在recibe.php中使用utf8_encode()data1和data2 – Wilmer

回答

0

如何:

function llegadaDatos(respuesta) { 
    var usuario = resupesta.datos1 || respuesta.datos2; 

    if (usuario) { 
     $(".lista-usuario").html(usuario); 
    } 

    $("#art-list").html(respuesta.datos3);  
} 
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 
    }); 

的 「異步:假」 在這裏可以解決你的問題。

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 
    }); 
}); 
0
if(typeof respuesta.datos1 != undefined){ 
    $(".lista-usuario").html(respuesta.datos1); 
}