1

このサイトのおかげで、サーバーから json データが返され、ページに適切に入力されるようになりました。

返されるフィールドの 1 つがNUM_PHOTOS. それぞれに少なくとも 1 枚の写真がありますitem.id

しかし、実際の写真は json データにはありません。それらは diff ディレクトリにあり、すべてが増加し、その特定のアイテムに存在するものに'item.id'+/1.jpg応じて始まります。NUM_PHOTOS

たとえば、アイテム '20090' の場合、別のディレクトリに 5 枚 /20090/1.jpg, 20090/2.jpg, etc.の写真があります。.jpgそれぞれの NUM_PHOTOS に従って、前に付ける番号を増やすにはどうすればよいですかitem.id?

以下のコードを使用して、すべての 'item.id' の最初の 3 つの画像をフレックスサイダーに動的に入力しましたが、もちろん写真の数はさまざまであり、含まれている.jpg's のプレフィックスを追加するために必要なものにこだわっています。NUM_PHOTOSそれぞれのitem.id.

$('.flexslider .slides').append('<li><img src="http://url/data/listing/pics/' + item.id     + '/1.jpg"></li>');           
$('.slides').append('<li><img src="http://www.url.co.nz/data/listing/pics/' + item.id     + '/2.jpg"></li>');
$('.slides').append('<li><img src="http://www.url.co.nz/data/listing/pics/' + item.id     + '/3.jpg"></li>');
}

私はいくつかのテクニックを試しましたが、完全な初心者として少し手を加える必要があります..

JS is: 
 $('#detailsPage').live('pagebeforeshow', function(event) {
    var id = getUrlVars()["id"];
    $.getJSON('http://www.url.co.nz/feeds/json_detail.php?id='+id, displayItem);
    });
    function displayItem(data) {
var listing = data.item;

$('#id').text(listing.id + ', ' + listing.suburb + ', ' +listing.district); 
$('#Title').text(listing.title);
$('#numberPhotos').text(listing.num_photos);
$('#price').text('Price Approx:   ' + '$' + listing.price );

// how do i auto increment the .jpg according the 'num_photos' field returned from json?
// ?????  if (listing.num_photos???????) {


$('.flexslider .slides').append('<li><img src="http://www.url.co.nz/data/listing/pics/' +     listing.id + '/1.jpg"></li>');
$('.slides').append('<li><img src="http://www.url.co.nz/data/listing/pics/' + listing.id     + '/2.jpg"></li>');
$('.slides').append('<li><img src="http://www.url.co.nz/data/listing/pics/' + listing.id     + '/3.jpg"></li>');
}

function getUrlVars() {
var vars = [], hash;
var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
for(var i = 0; i < hashes.length; i++)
{
    hash = hashes[i].split('=');
    vars.push(hash[0]);
    vars[hash[0]] = hash[1];
  }
  return vars;
}
4

1 に答える 1

0

JSONデータに含まれるIDの数を数える必要があります。

この行の直前

var listing = data.item;

カウントしたら、以下のコードをループ内に配置します。

for(i=0;i<counted_value;i++){
   var listing = data.item;
   $('.slides').append('<li><img src="http://www.url.co.nz/data/listing/pics/'+ listing.id +'/2.jpg"></li>');
}

カウント方法がわからない場合は、まずコンソールでデータを印刷し、データ形式を確認して、テストファイルにカウントを印刷してみてください

于 2012-09-11T05:07:01.460 に答える