2017-10-03 7 views
0

クリック可能なdivを持つページがあり、Jsonで動的に取り込まれています。 divにはアイテムのリストが含まれています。特定のアイテムをクリックすると、クリックしたアイテムの名前と詳細を含む新しいページが表示されます。 私の問題は、あなたがいくつかの助けをすることができれば、私はアイテムのラベル(名前)を表示する方法を理解できないということです。どうもありがとう !ここでクリックしたアイテムの表示値(ラベル名)

は私のJSON配列である:

$data['dataHeader'] = array('id', 'Name', 'Value'); 
$data['dataJson'] = array(
         array('id1', 'Jeans', 'blablablabla'), 
         array('id2', 'Leather Jacket', 'some random description'), 
         array('id3', 'Suede Boots', 'description of boots') 
        ); 
ここ

は私がしようとしたものです:ヘッダの

(function($) {   
    // Plugin to clickable element 
    $.fn.infoClickable = function() { 
     this.each(function() {   
      // get the object 
      var elm = $(this);     
      // Define click event 
      elm.on("click", function(){ 
       //Get info relative to clicked element   
       var currentPage   = elm.data("page"); 
       loadPage_X_Content(elm); 
      }); 
     }); 
    }  
    // Load page 1 
    loadPage1Content(); 
    // Application du plug-in 
    $('.clickableDiv').infoClickable(); 
}(jQuery)); 

function loadPage_X_Content(elm){ 
    var nextPage = currentPage + 1; 
    var nextPageName = '#LV' + nextPage +'Content'; 
    arrayOfData  = reponseData; 
    currentValue  = arrayOfData; 
    var elm   = $(this); 
    var elmID  = elm.attr("id"); 
    var PageContent = ''; 
    PageContent += '<div>' + elmID + '</div>'; 

    $.ajax({ 
     url : "Pages/index.php", 
     type: 'GET', 
     dataType: 'json', 
     data: 'action=loadPage' + '&ID=' + elmID, 
     success: function(reponseData) { 

 LVContent += '<div class="HeaderLine">'; 
     $.each(arrayOfData['dataHeader'], function(currentIdx, currentValue) 
     { 
       if (currentIdx > 0) PageContent += '<div class="' + arrayOfData[currentIdx] + '">'+ currentValue +'</div>'; 
     }); 
データの場合

コードが何であるかニレ指定されていません含ま
  $.each(arrayOfData['dataJson'], function(currentIdx, currentValue){ 
       PageContent += '<div class="BlocLine clickableDiv" ';     
       PageContent += ' id="' + currentIdx + "_" + currentContext + '"'; 
       PageContent += ' >'; 
       // columns 
       $.each(currentValue, function(currentIdx, currentValueCol){ 
        if (currentIdx > 0){ 
        PageContent += '<div class=" '+ arrayOfData[currentIdx] +' "'; 
        PageContent += ' >'+ currentValueCol +'</div>';       
       } 
     }); 
     PageContent += '</div>'; 
    }); 
    $(nextPageName).append(PageContent); 
    $(nextPageName).find('.clickableDiv').infoClickable(); 

}); 
+0

PLSのは、HTML、elm.attr(「ID」)を示してdiv要素のIDを取得していませんあなたの配列のid。これは、データ配列のIDを使ってdivのIDを設定した場合にのみ機能するので、名前を取得する方法についてはわかりません。 – FutureCake

+0

2つの配列のどちらが '$ data ['dataHeader '] 'または' $ data [' dataJson '] 'あなたは使っていますか?なぜ2つの配列を作るのですか?通常は '$ data ['dataJson'] [0] [0]'を実行すると 'id_jeans'が得られます。連想配列を試してみるべきです。 –

+0

@JérémyFerreira私はいくつかのコードで私の投稿を編集します、私は両方を使用しています、dataHeaderにはヘッダーラベルがあり、dataJsonにはデータ値が含まれています – Zee

答えて

0

var elm = document.getElementById('theAttrDivId'); 

はそうちょうど明確にするために、あなたのニレのですか?

また、あなたが名前を尋ねるが、IDを探して、それはだことを確認している:

var elmID = elm.attr("name"); 
+0

詳細については、私の投稿を編集しました。それは 'var elm = $(this);'これはクリック可能なdiv – Zee

関連する問題