2012-01-06 14 views
0

이것은 아마도 매우 간단하게 해결할 수 있습니다. 메신저는 db - ($.ajax을 통해 게시)에 생성 된 새 요소의 ID를 반환하는 PHP 페이지에 게시 - 반환 된 값을 기록했습니다.json 배열 요소에 액세스

다음 코드는 내가 사용하는 코드는 CONSOLE.LOG의 반환 값이

{"error":false,"msg":"Tag added","id":44} 

입니다

$.ajax({ 
       type: "POST", 
       url: "<?=base_url()?>events/add_tag_js/", 
       data: url, 
       success: function(html){ 

        $("#tag_list").append('<li><span id="" class="tag">'+formvalue+'<span class="remove_tag"><a class="remove_tag_link" href="#">x</a></span></span></li>'); 
        $("#add_tag").val(''); 
        console.log(html); 
       }, 
       failure: function(){ 
        $('.error').show(); 
        $("#add_tag").val(''); 
       } 

      }); 

게시하는 것입니다하지만 난 alert(html.id)을 수행 할 때 내가 정의되지 않은거야? 이 일을하기 위해 반환 된 JSON을 파싱해야합니까? 또는 내 json 잘못입니까?

답변

2

아마도 서버 측 스크립트에 적절한 컨텐츠 유형을 설정하지 않았을 수 있습니다. 따라서 jQuery는 이것이 JSON인지 알 수 없습니다. 그러니 서버 스크립트에 application/json에 콘텐츠 형식을 설정하거나 당신은 또한 당신이 dataType 매개 변수를 사용하여 요청에 JSON을 기대 나타낼 수 :이 서버 측 스크립트가 적절한 컨텐츠를 설정하는 것이 좋습니다 있지만

... 
type: "POST", 
url: "<?=base_url()?>events/add_tag_js/", 
data: url,  
dataType: 'json', // indicate that you expect JSON from the server 
... 

을 유형.

0

Json으로 처리하려고하면 html이 String이되므로 var myObj = eval (html); 어느 쪽이 나쁜가

$.ajax({ 
    url: url, 
    dataType: 'json', 
    data: data, 
    success: callback 
});