jQuery Ajax 및 JSON을 사용하여 MySQL에서 데이터를 얻고 있습니다. 그러나 응답이 비어있는시기를 알아야합니다. 날짜에 따라 일부 데이터를 반환하거나 반환하지 않는 날짜 매개 변수를 PHP에 전달합니다.
내 자바 스크립트 코드 (단순 버전) :
function pac_irra(date){
.ajax({
url: 'get_db_data/pac_irra.php?date='+date,
dataType: 'JSON',
type: 'POST',
data: {get_values: true},
beforeSend: function(){
$("#morris-line-chart").append(load_img);
},
success: function(response) {
date = response[0].Timestamp;
$('#a1').append(date);
},
});
}
예를 들어 어제 (2015-09-26) 데이터를 사용했다면 다음과 같은 json 데이터를 얻습니다 (일부만 해당).
[{"Timestamp":"2015-09-26 16:50:00","pac":"35.20","irra":"38.97"},{"Timestamp":"2015-09-26 17:00:00","pac":"32.19","irra":"35.51"}]
예를 들어 데이터가없는 날짜를 선택하면 다음을 반환합니다.
[]
아래의 자바 스크립트 코드에서 json 배열이 비어있는 경우 성공 함수에 if 문을 추가하고 싶습니다.
function pac_irra(date){
.ajax({
url: 'get_db_data/pac_irra.php?date='+date,
dataType: 'JSON',
type: 'POST',
data: {get_values: true},
beforeSend: function(){
$("#morris-line-chart").append(load_img);
},
success: function(response) {
date = response[0].Timestamp;
$('#a1').append(date);
if ( ***array is empty***) {
('#a1').append('No data');
};
},
});
}
내 성공 기능에서 json 데이터로 만든 morris 차트가 있습니다 ... 코드에 넣지 않았습니다 ...
그렇다면 비어 있는지 어떻게 확인합니까? 나는 이미 많은 시도를했다.
if (response.length == 0)
또는 다른 시도
if (response[0].Timestamp == "") or if (!response)
그리고 아무것도 작동하지 않습니다 ... 여전히 json 배열이 비어 있는지 확인할 수 없습니다 ...
내 PHP 코드 :
<?php
error_reporting(0);
$path = $_SERVER['DOCUMENT_ROOT'];
$path .= "/database/db_connect.php";
include_once($path);
if(isset($_GET['date'])) {
$date = $_GET['date'];
$days = $_GET['days'];
$var = array();
$query = "SELECT CONVERT_TZ(CONCAT(Date,' ',pac.Time), 'UTC', 'Europe/Lisbon' ) as Timestamp, ROUND((pac.Value/6440)*100,2) pac, ROUND((irra.Value/1000)*100,2) irra
FROM AggData pac
LEFT JOIN (SELECT Time, Value
FROM AggData WHERE Date=DATE_ADD('$date',INTERVAL '$days' DAY) and idEquipment=5 and idMeasure=6 ) irra
ON pac.Time=irra.Time
Where pac.Date=DATE_ADD('$date',INTERVAL '$days' DAY) and pac.idEquipment=1 and pac.idMeasure=3
AND (irra.Value>0 or pac.Value>0)
Order BY pac.Time asc
" or die("Error in the consult.." . mysqli_error($link));
$result = $link->query($query);
while($obj = mysqli_fetch_object($result)) {
$var[] = $obj;
}
echo json_encode($var);
}
?>
다양한 상태를 확인하려면 아래에서 시도하십시오
if((response && jQuery.isArray(response))?(response.length==0?false:(jQuery.isPlainObject(response[0])?!jQuery.isEmptyObject(response[0]):response[0])):response){
//console.log("adfdsaf");
}
응답이 null인지 정의되지 않았는지 또는 response == [] 또는 response == [{}] 또는 response [ ""]인지 확인합니다.
이것이 문제라고 생각합니다
success: function(response) {
if((response && jQuery.isArray(response))?(response.length==0?false:(jQuery.isPlainObject(response[0])?!jQuery.isEmptyObject(response[0]):response[0])):response){
('#a1').append('No data');
}else{
date = response[0].Timestamp;
$('#a1').append(date);
}
};
},
바라건대 그것은 작동 할 것이다
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다