2013-08-21 3 views
0

mysql에서 데이터를 가져 와서 json_encode으로 반향시키고 싶습니다. 내 JQUERY$.getJSON을 통해 JSON을 붙잡고 결과를 내 <ul>에 추가합니다. 데이터가 JQUERY에 의해 캡처 된 이유를 알아 내려고mysql에서 데이터를 가져 와서 JSON을 통해 표시합니다.

메신저 내의 index.php에 인쇄되지

이 여기 내 JQUERY

function my_function() { 
    $.getJSON("index.php", function(data) { 
     $.each(data.key, function(){ 
     $("ul").append("<li>Name: "+this['name']+"</li>" 
         "<li>message: "+this['msg']+ "</li>"); 
     }); 
}); 
} 
+1

다음 JSON 문자열이 ** 만 ** 일해야 당신이 뭔가를 할 수 있습니다 스크립트에 의해'echo'd됩니다. 당신은 잘못된 json을 만드는 html을 가지고있다. –

+0

index.php에 srctag가 있습니까? 그렇다면 문제는 json 배열 만 반환하도록하십시오. 그렇지 않다면, – Martijn

+0

이 게시판을 업데이트하십시오. '스크립트에 의해 유일하게 에코드가되어야 함'을 의미하는 것에 대해 더 많이 확장 할 수 있습니다. – bobbyjones

답변

0
index.php

<html> 
<?php 

    include_once('connect.php'); 

    $sql = "SELECT * FROM data"; 
    $query = mysql_query($sql); 
    $result = array(); 


    while($row = mysql_fetch_array($query)) 
     array_push($result,     
      array(       
      'name' => $row[1],    
      'msg' => $row[2])); 

    echo json_encode(array("key" => $result));  
?> 

<body> 

<ul> 
    //insert fetch data here 
</ul> 



<script type="text/javascript" src="./js/jquery.js"></script> 
<script type="text/javascript" src="./js/custom.js"></script> 
</body> 
</html> 

이며,

처음으로 : index.php 출력을 확인하여 유효한 json을 표시하는지 확인하십시오. ¿ 유효하지 않은 UTF8 문자가 있습니까? 이 경우 json_encode의 출력은 null입니다.

:

jQuery.ajax({ 
     url: 'index.php', 
     dataType: 'json' 
}).done(function(data) { 
    for (i=1;i<data.length;i++) { 
     datarow=data[i]; 
      $("ul").append("<li>Name: "+datarow.name+"</li>"); 
      $("ul").append("<li>message: "+datarow.msg+ "</li>"); 
     } 

     }); 

세 번째는 : json으로 발생하는 동일한 스크립트를 사용하지 않는 그것을 표시하기 위해서는 더하게 나는 일반 아약스 방법 데이터 형 JSON을 암시을 사용하십시오 앞에서 모든 작업을 수행하면 앱에서보기를 분리 할 수 ​​있습니다. 이전 답변에서 말했듯이이 경우에는 PHP를 모두 사용하여 생성 할 수 있습니다. (@Abdoul Sy)

0

동일한 페이지에서 JSON을 에코 처리하므로 JSON을 통해 데이터를 가져올 필요가 없습니다.

<ul id="jsonData" data-json-data="<?php echo json_encode($result;)?>" 

그리고 당신의 js 파일에

이 : 당신이 PHP 스크립트는 JSON을 반환하려면

var myData = $('#jsonData').data('json-data'); 
관련 문제