Estou enviando algúns parámetros por AJAX a PHP e isto responde a min a través de JSON varias respostas, xa que en función do PHP que atopan Varias solicitudes ao modelo para traer un count
por declaración SQL.
O problema é que a resposta de Ajax se un dato baleiro o declara como indefinido.
e a idea é que cobro eses count
por botón variable con badge
.
CODE JS
$('#Competencias').change(function(event) { IdCompetencia = $(this).val(); var cadena = {'IdPeriodo' : IdPeriodo}; cadena.IdSede = IdSede, cadena.AreaEmpleado = AreaEmpleado, cadena.IdCompetencia = IdCompetencia, $.post('EscalaCualitativaEmpleados', cadena , function(data) { var resultado = $.parseJSON(data); console.info(resultado.rendimientoalto ); if(typeof(resultado.rendimientobajo === 'undefined') && typeof(resultado.rendimientomedio === 'undefined') && typeof(resultado.rendimientoalto === 'undefined')) { $('#oculto').fadeIn("slow"); $('#CountResultCompetenciaButtons').html('<button type="button" class="btn btn-danger" style="margin: 10px 10px 10px 10px;">Bajo <span class="badge">0</span></button>' + '<button type="button" class="btn btn-warning" style="margin: 10px 10px 10px 10px;">Medio <span class="badge">0</span></button>' +'<button type="button" class="btn btn-success" style="margin: 10px 10px 10px 10px;">Alto <span class="badge">0</span></button>'); } else if(typeof(resultado.rendimientobajo === 'undefined') && typeof(resultado.rendimientomedio === 'undefined')) { $('#oculto').fadeIn("slow"); $('#CountResultCompetenciaButtons').html('<button type="button" class="btn btn-danger" style="margin: 10px 10px 10px 10px;">Bajo <span class="badge">0</span></button>' + '<button type="button" class="btn btn-warning" style="margin: 10px 10px 10px 10px;">Medio <span class="badge">0</span></button>' +'<button type="button" class="btn btn-success" style="margin: 10px 10px 10px 10px;">Alto <span class="badge">' + resultado.rendimientoalto + '</span></button>'); } else if(typeof(resultado.rendimientomedio === 'undefined') && typeof(resultado.rendimientoalto === 'undefined')) { $('#oculto').fadeIn("slow"); $('#CountResultCompetenciaButtons').html('<button type="button" class="btn btn-danger" style="margin: 10px 10px 10px 10px;">Bajo <span class="badge">' + resultado.rendimientobajo + '</span></button>' + '<button type="button" class="btn btn-warning" style="margin: 10px 10px 10px 10px;">Medio <span class="badge">0</span></button>' +'<button type="button" class="btn btn-success" style="margin: 10px 10px 10px 10px;">Alto <span class="badge">0</span></button>'); } else if(typeof(resultado.rendimientoalto === 'undefined') && typeof(resultado.rendimientobajo === 'undefined')) { $('#oculto').fadeIn("slow"); $('#CountResultCompetenciaButtons').html('<button type="button" class="btn btn-danger" style="margin: 10px 10px 10px 10px;">Bajo <span class="badge">0</span></button>' + '<button type="button" class="btn btn-warning" style="margin: 10px 10px 10px 10px;">Medio <span class="badge">' + resultado.rendimientomedio + '</span></button>' +'<button type="button" class="btn btn-success" style="margin: 10px 10px 10px 10px;">Alto <span class="badge">0</span></button>'); } else { $('#oculto').fadeIn("slow"); $('#CountResultCompetenciaButtons').html('<button type="button" class="btn btn-danger" style="margin: 10px 10px 10px 10px;">Bajo <span class="badge">' + resultado.rendimientobajo + '</span></button>' + '<button type="button" class="btn btn-warning" style="margin: 10px 10px 10px 10px;">Medio <span class="badge">' + resultado.rendimientomedio + '</span></button>' +'<button type="button" class="btn btn-success" style="margin: 10px 10px 10px 10px;">Alto <span class="badge">' + resultado.rendimientoalto + '</span></button>'); } });
Erro
prueba.js:171 Uncaught TypeError: Cannot read property 'rendimiento_bajo' of undefined at Object.success (prueba.js:171) at c (jquery-1.10.2.min.js:4) at Object.fireWith (jquery-1.10.2.min.js:4) at k (jquery-1.10.2.min.js:6) at XMLHttpRequest.r (jquery-1.10.2.min.js:6)