使用jQuery AJAX跟踪搜索Last.fm JSON API

时间:2012-02-02 21:28:33

标签: jquery ajax json last.fm

我正在尝试重新发明Last.FM的曲目搜索,但在我的网站上并使用jQuery和AJAX。所以我的想法是通过Last.FM的JSON API获取数据并传递文本输入元素数据。例如 - 用户将输入“Rolling Stones Horses”并单击“提交”。 jQuery会将“Rolling Stones Horses”传递给字符串http://ws.audioscrobbler.com/2.0/?method=track.search&track=Rolling%20Stones%20Horses&api_key=b25b959554ed76058ac220b7b2e0a026&format=json&callback=吗?然后它会将结果吐出为HTML

<P> ARTIST NAME - TRACK </P>

我正在尝试将搜索表单,AJAX和getJSON如何协同工作。这是我到目前为止所做的:

<body>
   <form action="/wphmusic/" id="searchForm">
   <input type="text" name="s" placeholder="Search..." />
   <input type="submit" value="Search" />
   </form>

   <div id="result"></div>

<script type="text/javascript">

$("#searchForm").submit(function(event) {

event.preventDefault(); 

var $form = $( this ),
    term = $form.find( 'input[name="s"]' ).val(),
    url = $form.attr( 'action' );
});

var fmurl = 'http://ws.audioscrobbler.com/2.0/?method=track.search&track=' + url + '&api_key=b25b959554ed76058ac220b7b2e0a026&format=json&callback=?';
$.getJSON(fmurl, function(data) {
    var html = '';
    $.each(data.results.trackmatches.track, function(i, item) {
        html += "<p>" + item.name + " - " + item.artist + "</p>";
});
    $('#result').append(html);

</script>
</body>

Super newb here!

1 个答案:

答案 0 :(得分:1)

这应该有用,虽然我觉得你在getJSON调用中缺少一个括号。