Yahoo!デベロッパーネットワークのショッピングWeb APIにある商品検索APIを使用して、キーワード検索した結果を表示する簡単なプログラムを作成してみました。
以前に書いた記事($.ajaxでYahooショッピング商品検索APIを利用したプログラムを作成)では、JavaScript(jQuery)だけで作成したのですが、ここではPHPとjQueryを使用して商品検索結果を表示しています。
Yahoo!ショッピングWeb APIのコード例
- Webサービス:Yahooショッピング商品検索API
- データ形式:XML、JSONP等
- 使用時の注記:クレジット表示必要
- 利用時の登録:必要
下のコードでは、PHPを使用して商品検索APIにリクエストして結果を取得するしています。
<?php
$request_yahoo = 'http://shopping.yahooapis.jp/ShoppingWebService/V1/json/itemSearch';
$appid_yahoo = 'アプリケーションID';
$query_yahoo = $_POST['query'];
$base_url = "$request_yahoo?appid=$appid_yahoo&query=$query_yahoo";
$json = file_get_contents($base_url);
$json = mb_convert_encoding($json, 'UTF-8');
header('Content-type: application/json; charset=UTF-8');
print($json);
下のコードでは、jQuery(JavaScript)を使い、$.ajaxの非同期通信の設定にして上のPHPとキーワードと検索結果のデータのやり取りをしています。
var goods = {};
$(function() {
$('#button').on('click', function(e) {
e.preventDefault();
$.ajax({
url:'appid.php',
type: 'post',
dataType: 'json',
async: 'true',
data: {
query: $('#word').val(),
}
})
.done(function(data) {
goods = data.ResultSet[0];
$('#content').empty();
for(var i = 0; i < 5; i++) {
var img_goods = $('<img>').attr('src', goods.Result[i].Image.Small);
$('#content').append('<p>' + goods.Result[i].Name +'('+ goods.Result[i].Category.Current.Name +')').append(img_goods)
}
})
.fail(function(data) {
alert(data);
});
});
});
下のHTMLでは、キーワードとなる単語の入力と検索結果を表示します。
<input type="text" id="word" value="" /> <input type="button" id="button" value="送信" /> <div id="content"></div>
スポンサーリンク

コメント