ビューデータを返して、確認のためにリストに表示しようとしています。
データを送信しており、受信しているようです(200が返されます)が、データを出力していません。
どんな助けも大歓迎です!
<div id="ajax"></div>
<script type="text/javascript">
$(document).ready(function(){
$.getJSON('/views/ajax?view_name=latest_new&view_display_id=page_1&view_args=city', function(data) {
var items = [];
$.each(data.items, function(i, item) {
items.Push('<li id="' + i + '">' + item + '</li>');
});
$('<ul/>', {
'class': 'my-new-list',
html: items.join('')
}).appendTo('#ajax');
});
});
</script>
私の(現在の)ソリューションに興味がある人のために。
私のビューは、すべてのノードの日付を降順に出力します。私の二次メニューは、引数としてビューに渡すことができる分類用語で構成されています。以下のコードは、指定された分類用語を含むノードを表示するために機能します。
それは仕事が必要ですが、今のところとても良いです。
$('#block-menu-secondary-links a').bind('click', function(){
var arg = $(this).attr("title");
$.get('views/ajax?view_name=latest_new&view_display_id=page_1&view_args='+arg, null, response);
return false;
});
var response = function(data) {
var result = Drupal.parseJson(data);
$('#content').html(result.display);
}
$.ajax({
url:'views/ajax',
dataType: 'json',
data:{
view_name: 'my view name',
view_display_id: 'default',
view_args: 'view argument goes here',
},
success: function(data, textStatus, jqXHR){
if(data[1].data !== undefined){
// the view results will be in data[1].data
}
}
})
_/views/ajax
_の結果はあなたが期待したとおりだとは思いません。 Drupal 7では、ビューの結果ではなく、文字列の配列として Ajaxコマンド の配列が返されます。- views_ajax()
を参照してください。 (または views_ajax()
for Drupal 6)。
ビューの結果をJSON配列として取得する場合は、おそらく Views Datasource モジュールを使用する方が簡単です。
Firebugスクリーンショットを表示した後、_$.getJSON
_のコールバックのitems
argumentにdata
プロパティがありません。 $.each(data.items, function(i, item) {...});
はundefined
値をループして何もしません。 _$.getJSON
_リクエストへの応答には、ビューからのrendered結果のように見えるdisplay
propertyが含まれています。繰り返しになりますが、私はあなたが探しているデータを必要とせず、構造化されたJSONデータとして結果を取得するために何かが必要です。