jQueryオートコンプリート、Yahoo Finance、ZendFrameworkを連携させようとしています。
私が欲しいのは、YahooAPIを介してティッカーシンボルをオートコンプリートできるフォームフィールドを作成することです。
これを含むZend_From要素をすでに作成しました:
$this->setJQueryParam('source', new Zend_Json_Expr('function( request, response ) {
$.ajax({
type: "GET",
dataType: "jsonp",
jsonp: "callback",
jsonpCallback: "YAHOO.Finance.SymbolSuggest.ssCallback",
data: {
query: request.term
},
cache: true,
url: "http://autoc.finance.yahoo.com/autoc";
}
});
}'));
$this->getView()->jQuery()->addJavascript('var YAHOO={Finance:{SymbolSuggest:{}}};');
$this->getView()->jQuery()->addOnLoad('YAHOO.Finance.SymbolSuggest.ssCallback = function (data) {
console.log(JSON.stringify(data)); }');
私の問題の一部を解決したこの投稿を見つけましたが、使用するvar YAHOO={Finance:{SymbolSuggest:{}}};
ことは汚いトリックであり、正しい方法ではないと思います。
ここで、フィールドにGOOと入力すると、firebugコンソールに次のようなメッセージが表示されます。
{"ResultSet":{"Query": "goo"、 "Result":[{"symbol": "GOOG"、 "name": "Google Inc。"、 "exch": "NMS"、 "type": "S"、 "exchDisp": "NASDAQ"、 "typeDisp": "Equity"}、{"symbol": "GT"、 "name": "Goodyear Tire&RubberCo。"、 "exch": "NYQ" 、"type": "S"、 "exchDisp": "NYSE"、 "typeDisp": "Equity"} .. ..
これは素晴らしいことですが、このコールバック関数からこれらのデータをオートコンプリートに送り返す方法がわかりません。