2017-05-09 5 views
0

결과가없는 영화를 검색 할 때 집에서 프로젝트에 omdb api를 사용하고 있는데, 이전의 성공적인 검색에서 세부 정보 (제목, 연도, 음모 등)와 깨진 이미지가 표시됩니다. .omdb api 결과가 없습니다.

동영상을 찾지 못하면 아무것도 표시하지 않으려 고하고 있습니다. 이것이 가능한가?

나는 Javascript와 Json에 대한 지식이 매우 부족하지만 얼마 동안 여러 가지를 시도해 왔지만 해결할 수 없습니다. 어떤 도움이라도 대단히 감사 할 것입니다. 다음과 같이 실패한 쿼리에

var $Form = $('#omdbform'), $Container = $('#containera'); 
$Container.hide(); 
$Form.on('click', function(p_oEvent){ 
    var sUrl, sMovie, oData; 
    p_oEvent.preventDefault(); 
sMovie = $Form.find('#moviename').val(); 
    sUrl = 'https://www.omdbapi.com/?t=' + sMovie + '' 
    $.ajax(sUrl, { 
     complete: function(p_oXHR, p_sStatus){ 
      oData = $.parseJSON(p_oXHR.responseText); 
      console.log(oData); 
      $Container.find('.title').text(oData.Title); 
      $Container.find('.plot').text(oData.Plot); 
      $Container.find('.poster').html('<img src="' + oData.Poster + '" alt=""/>'); 
      $Container.find('.year').text(oData.Year); 
      $Container.find('.rated').text(oData.Rated); 
      $Container.show(); 
     } 
    });  
}); 
+0

코드를 줄일 수 있습니까? 당신은 단지 요청을하고 찾고있는 결과를 얻지 못하는 것 같습니다. – TankorSmash

+0

응답 내용을 확인해야합니다. 실패한 검색어로 API 페이지를 확인 했습니까? –

+0

@TrankorSmash 내가 원하는 결과를 얻고 있지만 찾을 수없는 영화를 검색하면 이전 검색 결과에 대한 세부 정보가 표시되어 아무 것도 표시하지 않을 것입니다. 나는 이것이 의미가 있기를 바랍니다. – Greg

답변

1

이 API는 응답 : 내가하려고 일을 그것을 엉망 전에

여기 내 코드의 상태 코드 200

{"Response":"False","Error":"Movie not found!"} 

, 그래서 당신은에서 몸을 확인해야합니다 응답.

편집 : 당신은 응답 객체와 검사에 hasOwnProperty 방법을 사용할 수 있습니다

이 객체가 title 속성이있다, 다음, 아무것도하지 않고 다른 경우 Container.show()를 호출하거나 DOM에서 어떤 결과에 대한 정보를 표시합니다.

편집 2 : 이전 동영상에 대한 정보를이 컨테이너는 여전히한다면

oData = $.parseJSON(p_oXHR.responseText); 

if (oData.hasOwnProperty("Title")) { 
    $Container.find(".title").text(oData.Title); 
    $Container.find(".plot").text(oData.Plot); 
    $Container.find(".poster").html('<img src="' + oData.Poster + '" alt=""/>'); 
    $Container.find(".year").text(oData.Year); 
    $Container.find(".rated").text(oData.Rated); 
} else { 
    $Container.find(".error").text(oData.Response); 
} 
$Container.show(); 

, 아마 당신은 내가 DOM Removal 섹션 empty 방법 또는 다른 방법을 생각하여 DOM을 지우는 방법을 구현해야합니다.

+0

죄송합니다. 전 아직 완전히 잃어버린군요. 필자는 지난 1 시간 동안 인터넷 검색을 시도하고 몇 가지 시도를했지만 아무 것도 작동하지 않는 것처럼 보였습니다. – Greg

+0

내 편집을보세요. –

+0

도와 주시고 시간을 내 주셔서 대단히 감사합니다.하지만 그건 내 머리 위로하고 패배를 인정할 때라고 생각합니다. 이처럼 대부분의 일은 해킹 할 수 있고 결국에는 작동시킬 수 있지만,이 일은 나를 잡았습니다. – Greg

관련 문제