Frage

Ich habe diese jQuery-Funktion

function getData(jsonLink){
  $(".scrollable .items").html("<img class='loadGif' src='/sites/all/themes/zen/journeyon/images/ajax-loader.gif' alt='' />");

  $.ajaxSetup({
    url: jsonLink,
    global: false,
    type: "GET"
  });

  $.ajax({
    url: jsonLink,
    success: function(data) {
      var output = "";
      $.each(data['nodes'], function(i,row){
        var linkType = row['node-type'];
        var lowerLinkType = linkType.toLowerCase();
        var videoLink = row["video"];
        var thumbLink = row["thumbnail"];
        var posterLink = row["poster-image"];
        var nodeTitle = row["node-title"];
        var url = row['url-link'];
        if(linkType == "Episode"){
          output+='<li><a class="myRemote '+lowerLinkType+'" href="'+posterLink+'" ref="'+videoLink+'" title="Play '+nodeTitle+'"><img src="'+thumbLink+'" width="123" height="67" alt="Play '+nodeTitle+'" /></a></li>';
        }else if(linkType == "Slide"){
          output+='<li><a class="myRemote '+lowerLinkType+'" href="'+posterLink+'" ref="'+url+'" title="Go To '+nodeTitle+'"><img src="'+thumbLink+'" width="123" height="67" alt="Go To '+nodeTitle+'" /></a></li>';
        }
      });
      $(".scrollable .items").html("").append(output);
      remoteControl();
    }
  });
}

Und ich versuche dieses Array zu analysieren,

{
    "nodes": [
        {
            "node-title" : "Slide for Album Post",
            "node-type" : "Slide",
            "poster-image" : "http://journeyon.local/sites/default/files/imagecache/ticker_image/files/poster-images/Web_Graphic2.jpg",
            "thumbnail" : "http://journeyon.local/sites/default/files/imagecache/ticker_thumbnail/files/poster-images/Web_Graphic2.jpg",
            "video" : "",
            "audio" : "",
            "url-link" : "http://dev.journeystl.info/current/blogs/josh-dix/latest-worship-ep-have-thine-own-way"
        },
        {
            "node-title" : "Walking In The Light",
            "node-type" : "Episode",
            "poster-image" : "http://journeyon.local/sites/default/files/imagecache/ticker_image/files/poster-images/Sermon_2009-09-27pf.jpg",
            "thumbnail" : "http://journeyon.local/sites/default/files/imagecache/ticker_thumbnail/files/poster-images/Sermon_2009-09-27pf.jpg",
            "video" : "http://journeyon.local/sites/default/files/video/vodcast/Sermon_2009-09-27-Vodcast.m4v",
            "audio" : "http://journeyon.local/sites/default/files/audio/Sermon_2009-09-27-Podcast.mp3",
            "url-link" : ""
        },
        {
            "node-title" : "Test Slide",
            "node-type" : "Slide",
            "poster-image" : "http://journeyon.local/sites/default/files/imagecache/ticker_image/files/poster-images/iStock_000000041926Small.jpg",
            "thumbnail" : "http://journeyon.local/sites/default/files/imagecache/ticker_thumbnail/files/poster-images/iStock_000000041926Small.jpg",
            "video" : "",
            "audio" : "",
            "url-link" : "/node/3960"
        },
        {
            "node-title" : "Finding God at Church",
            "node-type" : "Episode",
            "poster-image" : "http://journeyon.local/sites/default/files/imagecache/ticker_image/files/poster-images/Sermon_2009-09-06pf_0.jpg",
            "thumbnail" : "http://journeyon.local/sites/default/files/imagecache/ticker_thumbnail/files/poster-images/Sermon_2009-09-06pf_0.jpg",
            "video" : "http://journeyon.local/sites/default/files/video/vodcast/Sermon_2009-09-05-Vodcast.m4v",
            "audio" : "http://journeyon.local/sites/default/files/audio/Sermon_2009-09-06-Podcast.mp3",
            "url-link" : ""
        },
        {
            "node-title" : "Finding God in Brokenness",
            "node-type" : "Episode",
            "poster-image" : "http://journeyon.local/sites/default/files/imagecache/ticker_image/files/poster-images/Sermon_2009-08-30pf_0.jpg",
            "thumbnail" : "http://journeyon.local/sites/default/files/imagecache/ticker_thumbnail/files/poster-images/Sermon_2009-08-30pf_0.jpg",
            "video" : "http://journeyon.local/sites/default/files/video/vodcast/Sermon_2009-08-30-Vodcast.m4v",
            "audio" : "http://journeyon.local/sites/default/files/audio/Sermon_2009-08-30-Podcast.mp3",
            "url-link" : ""
        },
        {
            "node-title" : "False Teachers",
            "node-type" : "Episode",
            "poster-image" : "http://journeyon.local/sites/default/files/imagecache/ticker_image/files/poster-images/Sermon_2009-07-26pf.jpg",
            "thumbnail" : "http://journeyon.local/sites/default/files/imagecache/ticker_thumbnail/files/poster-images/Sermon_2009-07-26pf.jpg",
            "video" : "http://journeyon.local/sites/default/files/video/vodcast/Sermon_2009-07-25-Vodcast.m4v",
            "audio" : "http://journeyon.local/sites/default/files/audio/Sermon_2009-07-25_Podcast.mp3",
            "url-link" : ""
        },
        {
            "node-title" : "Confessions: A Story of Struggle, Restoration, and Hope",
            "node-type" : "Episode",
            "poster-image" : "http://journeyon.local/sites/default/files/imagecache/ticker_image/files/poster-images/PosterFrame_Confessions.jpg",
            "thumbnail" : "http://journeyon.local/sites/default/files/imagecache/ticker_thumbnail/files/poster-images/PosterFrame_Confessions.jpg",
            "video" : "http://journeyon.local/sites/default/files/video/vodcast/Sermon_2009-06-28-Vodcast.m4v",
            "audio" : "http://journeyon.local/sites/default/files/audio/Sermon_2009-06-28-Podcast.mp3",
            "url-link" : ""
        } 
    ] 
} 

Das Problem ist, ich auf dem jquery.js eine Störung erhalte Datei selbst.

G is undefined
http://journeyon.local/sites/all/themes/zen/journeyon/js/jquery-1.3.2.min.js?4
Line 12

Wer noch keine Ahnung, was los ist? wenn ich warnen vor dem .each () Aussage es ganz gut alarmiert, aber wenn ich in der .each () Aussage alarmieren ich nichts und die Variablen nie gebaut werden.

Danke!

War es hilfreich?

Lösung

Sie tun es auf die harte Tour durch $.ajax() verwenden. Es ist einfacher, $.getJSON() stattdessen zu verwenden.

Andere Tipps

$.ajax({
 url: jsonLink,
 dataType: 'json',
 success: function(data) {
  $.each(data.items, function(i,item){
  // your code ..
  });
 }
});

Für einen PHP-Array json codierte

<?php $arr= array('1'=>'2', 2=>'3',4000=>'400','x'=>'alfa'); ?>

<input type="hidden" value="<?php echo json_econde($arr); ?>" id="phpjsonencoded">

Sie verwenden können,

var x = "[" + $('#phpjsonencoded').val() + "]";

var obj = $.parseJSON(x);

$.each(obj[0],function(key,val){

console.log(val);

});

Verwenden Sie einfach row.node-type, row.video etc statt row['node-type'] der Verwendung row["video"] usw.

Hope dies dazu beitragen wird.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top