2014-12-01 4 views
0

ajax 호출에서 응답으로 JSON 객체의 매개 변수 값을 가져와야하지만 어떻게해야하는지 이해할 수 없습니다.ul li 클릭에 따라 JSON에서 요소 추출

이 내가 JSON 구조를 재현하는 내 PHP 파일 인 경우

echo " { "; 
echo '"general" : {'; 
echo '"obj" : [ 
    {"name" : "Primo", "description" : "Descrizione associata alla prima voce"}, 
    {"name" : "Secondo", "description" : "Descrizione associata alla seconda voce"}, 
    {"name" : "Terzo", "description" : "Descrizione associata alla terza voce"} 
]}}'; 

그리고이 갈 수있는 올바른 방법 인 내 HTML 파일

$(document).ready(function(e) { 
    $('#name li').click(function() { 
     var name = $(this).text(); 
     url = "example.php?name=" + name; 
     $.getJSON(url, 
      function(json) { 
       //for (i = 0; i < json.general.obj.length; i++) { 
       //output = "<tr>"; 
       output = "<td>" + json.general.obj[0].name + "</td>"; 
       output += "<td>" + json.general.obj[0].description + "</td>"; 
       //output += "</tr><br/>"; 

       console.log(output); 

       $("#response").append(output); 
       //} 
      }); 
     }); 
    }); 
<ul id="name"> 
    <li data-id="1">Primo</li> 
    <li data-id="2">Secondo</li> 
    <li data-id="3">Terzo</li> 
</ul> 

<div id="response"> 
    <!--Data goes here--> 
</div> 

입니까? 응답으로 원하는 "설명"값을 수신하려면 $_REQUEST['name'] 변수를 어디에 두어야합니까? 내가 변경

$('#name li').click(function() { 
    var name = $(this).text(); 
    var index = $(this).data('id') -1; 
    var url = "example.php?name=" + name; 

    $.getJSON(url, function(json) { 
     output = "<p>" + json.general.obj[index].name + "</p>"; 
     output += "<p>" + json.general.obj[index].description + "</p>"; 
     $("#response").append(output); 
    }); 
}); 

Example fiddle

참고 :

내가 갇혀있을거야

+0

는 서버 측 호출에 PHP 배열을 구축 : 만 원하는 경우

또한, 마지막으로 클릭 된 요소의 데이터를 볼 수 당신은 사용할 수 있습니다 (대신 할 때마다 새로운 세트를 추가로) 할 수 [json_encode] (http://php.net/manual/en/function.json-encode.php). – mudasobwa

답변

0

당신은 인덱스, 이런 식으로 뭔가에 의해 배열의 특정 항목을 검색 할 data-id을 사용할 수 있습니다 tdoutput에서 p으로 td 요소는 테이블 내에서만 유효합니다.

$("#response").html(output); 
+0

대단히 죄송합니다. 한 가지 질문 : 목록에서 -1은 무엇을 의미합니까? – dabadee

+0

귀하의 ID가 1에서 시작하지만 배열 인덱스가 0부터 시작하므로 -1이 있으므로 0에서 시작하십시오. –