web-dev-qa-db-ja.com

Drupal getJSON関数を使用してJSONデータを表示するのに役立つ

ビューデータを返して、確認のためにリストに表示しようとしています。

データを送信しており、受信しているようです(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>
1
Allan Thomas

私の(現在の)ソリューションに興味がある人のために。

私のビューは、すべてのノードの日付を降順に出力します。私の二次メニューは、引数としてビューに渡すことができる分類用語で構成されています。以下のコードは、指定された分類用語を含むノードを表示するために機能します。

それは仕事が必要ですが、今のところとても良いです。

$('#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);
}
0
Allan Thomas
$.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
    }
  }
})
2
2pha

_/views/ajax_の結果はあなたが期待したとおりだとは思いません。 Drupal 7では、ビューの結果ではなく、文字列の配列として Ajaxコマンド の配列が返されます。- views_ajax()を参照してください。 (または views_ajax() for Drupal 6)。

ビューの結果をJSON配列として取得する場合は、おそらく Views Datasource モジュールを使用する方が簡単です。

Firebugスクリーンショットを表示した後、_$.getJSON_のコールバックのitemsargumentにdataプロパティがありません。 $.each(data.items, function(i, item) {...});undefined値をループして何もしません。 _$.getJSON_リクエストへの応答には、ビューからのrendered結果のように見えるdisplaypropertyが含まれています。繰り返しになりますが、私はあなたが探しているデータを必要とせず、構造化されたJSONデータとして結果を取得するために何かが必要です。

0
Pierre Buyle