2017-04-18 2 views
0

나는 PHP 파일에 데이터를 보내는 html 파일에 양식을 가지고 있습니다. 해당 php 파일은 데이터베이스에서 선택하고 결과를 json 파일로 변환 한 다음 html 파일로 다시 보냅니다.PHP에서 생성 된 json을 html에서 가져 오기

저는 PHP에서 json을 어떻게 얻을 수 있는지 알고 싶습니다. 나는 (검사 메뉴의 네트워크 탭에서) 회신을 받는다. 그러나 그것을 얻는 방법을 알지 못한다. (에코/경고/차트를 만든다.) 미리 감사드립니다!

데이터 전송 내 코드입니다 :

<script type="text/javascript"> 
    $(function() { 
     $(".datepicker").datepicker({ 
      minDate: new Date(2015, 8 - 1, 25), 
      maxDate: "0" 
     }); 
    }); 

$(function() { 
    // On form's submit, takes both input's values... 
    $('form').on('submit', function (e) { 
     var from = $("#from").val(); 
     var to = $("#to").val(); 
     // ...to compare them and displays an error if "to" is smaller than "from" 
     if(Date.parse(from) > Date.parse(to)){ 
      alert("Invalid Date Range"); 
     } 
     else{ 
      e.preventDefault(); 
      $.ajax({ 
       type: 'post', 
       url: 'classes/Select.php', 
       data: $('form').serialize(), 
       success: function() { 
        alert('data sent'); 
       } 
      }); 
     } 
    }); 
}); 
</script> 

을 그리고 이것은 (모든 MySQL의 일부 등을 왼쪽) json으로 만드는 PHP의 일부입니다에서

while ($arr = $query->fetch(PDO::FETCH_ASSOC)) { 
    echo json_encode($arr); 
+0

https://stackoverflow.com/help/mcve – julekgwa

+0

당신이로 json_encode를 사용하여 시도 있나요()? 여기에 코드를 작성할 수 있습니까? –

+0

상황에 대한 예제 코드를 보여줘야합니다. –

답변

1

당신이 당신의 PHP에서 루프를 사용하고 있기 때문에, 배열을 만드는 것이 루프가 끝나면 결과는 json_encode으로 에코됩니다. 자바 스크립트에서 다음

$results = []; 
while ($arr = $query->fetch(PDO::FETCH_ASSOC)) { 
    $results[] = $arr; 
} 
echo json_encode($results); 

$.ajax({ 
     type: 'post', 
     url: 'classes/Select.php', 
     data: $('form').serialize(), 
     success: function(data) { 
      var results = JSON.parse(data); // convert the results to json 
      console.log(results); 
     } 
    }); 
+0

그것은 작동합니다! 바보 같은 질문 일지 모르지만 PHP 코드를 변경해야하는 이유는 무엇입니까? json 파일에서 객체 만 만들면됩니까? – Newwt

+0

@Newwt 데이터가 자바 스크립트와 PHP 모두와 호환 될 수 있습니다. 대답으로 표시하는 것을 잊지 마십시오. – julekgwa

+0

작성 완료되었습니다. 감사합니다. – Newwt

1

당신의 자바 스크립트 아약스 전화 코드, 당신은 아마 성공 : 열쇠. 보십시오 : 당신이 JSON 문자열을 사용 json_decode를 얻을 수 ($의 JSON)하고 가치를 얻을 경우

success: function(data) { console.log(data); } 
+0

아니, 작동하지 않습니다. 그것은 내가 보낸 데이터가 아니라 내가 보낸 데이터를 기록합니다. – Newwt

+0

게시물의 코드에 성공했습니다. 함수()는 괄호 안에 '데이터'가 없습니다. – delboy1978uk

1

당신이 원하는 :

$json = '{"key-example": 12345}'; 

$obj = json_decode($json); 
print $obj->{'key-example'}; // 12345 
+0

제가 이미하고있는 것은 HTML 쪽에서입니다. 여기서 PHP로 생성 된 json을 얻기 위해 무엇을해야할지 모르겠습니다. . – Newwt

+1

ajax 호출을 만들고 json으로 변환 한 후 응답 데이터를 인쇄하십시오. JSON.parse (data) – Slaiv206

+1

그래, 해결 됐어, 고마워! – Newwt

관련 문제