JQuery - 如果没有值,则获取错误消息

时间:2015-10-22 15:47:44

标签: javascript jquery html css ajax

所以我已按照自己的意愿完成了我的网站,现在我只是在最后一点收到错误消息,如果找不到我的电影。所以这意味着我有一个返回JSON的API。如果一个人写了无效的电影,如" ifeahaef"它返回null,我想知道是否有可能在Jquery中犯一个类似"没有找到电影的错误!"喜欢在搜索栏下面?现在我的网站看起来像这样

my site right now

这就是我想要的方式

What I want

我不知道我的代码是否必要,但我可以发布我的JS以防万一,也许会更容易看到。

function callAjax(input) 
{ 
var url = "http://localhost:1337/search/" + input; 

$.ajax({ 
type:'GET', 
url: url, 
success: function(data) 
{ 
console.log('SUCCESS'); 
$('#title').html("Title: " + data.title);
$('#release').html("Release: " + data.release);
$('#vote').html("Vote: " + data.vote);
$('#overview').html("Overview: " + data.overview);
$('#poster').html('<img src="' + data.poster + '" width=250 height=450 />'); 
$('#trailer').html("Trailer: <iframe width='420' height='315' src='https://www.youtube.com/embed/" + data.trailer + "' frameborder='0' allowfullscreen>");



},
error: function(request, status, err) 
{ 
console.log('ERROR'); 
} 
}); 
} 

$(document).ready(function(){ 

$('#submitButton').on('click', function(e){ 
e.preventDefault(); 

var input = $('#s').val();
callAjax(input); 
}); 

}); 

HTML:

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>MovieTrailerbase</title>

<link rel="stylesheet" type="text/css" href="styles.css" />

</head>

<body>

<div id="page">

    <h1>The MovieTrailer search</h1>

    <form id="searchForm" method="post">
        <fieldset>

            <input id="s" type="text" />

            <input type="submit" value="Submit" id="submitButton" />

            <div id="searchInContainer">
                <input type="radio" name="check" value="site" id="searchSite" checked />
                <label for="searchSite" id="siteNameLabel">Search movie</label>

                <input type="radio" name="check" value="web" id="searchWeb" />
                <label for="searchWeb">Search series</label>
            </div>

        </fieldset>
    </form>

<aside>
<div id="title"></div>
<div id="release"></div>
<div id="vote"></div>
<div id="overview"></div>
<br>
<div id="trailer"></div>
</aside>

<div id="poster"></div>


</div>


<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script src="script.js"></script>


</html>

3 个答案:

答案 0 :(得分:1)

作为一个简单的理解,如果任何API现在抛出错误,它被认为是成功的。现在你能做的就是处理这种情况,如

SELECT is_accountant from users where customer_id='cus_4znUZe3lAy26FT' 

一种简单的方法是在HTML中添加错误标签

deleted_users

答案 1 :(得分:0)

1)在服务器的JSON返回对象中包含Error字段。您的JSON对象必须包含以下字段:

   title
   release
   vote
   overview
   poster
   trailer
   Error

2)您必须使用服务器端语言执行以下操作:

  1. 从请求中获取电影名称
  2. 如果找到电影,则创建一个包含电影数据和Error = false的JSON,并用电影数据填充剩余的JSON。

    2.1。否则使用Error = true创建JSON。无需填写其他字段

  3. 将JSON返回给客户端

  4. 3)然后在您的Ajax success回调中查看是否存在错误:

    $.ajax({ 
     type:'GET', 
     url: url, 
     success: function(data){ 
         if(!data.Error){
           console.log('SUCCESS'); 
           $('#title').html("Title: " + data.title);
           $('#release').html("Release: " + data.release);
           $('#vote').html("Vote: " + data.vote);
           $('#overview').html("Overview: " + data.overview);
           $('#poster').html('<img src="' + data.poster + '" width=250     height=450 />'); 
           $('#trailer').html("Trailer: <iframe width='420' height='315' src='https://www.youtube.com/embed/" + data.trailer + "' frameborder='0' allowfullscreen>");
    
         }else{ 
             alert("Movie not found");
         }
     },
     error: function(request, status, err){ 
        console.log('ERROR'); 
     } 
    }); 
    } 
    

答案 2 :(得分:0)

不确定您的回复结构如何。但我的目标是这样的。

if(data.length <= 0 || data == null){
     $('#element-to-add-message-to').html('No titles found....');
     return;
}