2017-03-02 8 views
1

내가 AJAX에 PHP에서 배열을 반환하려고하지만, 대신 내가 AJAXPHP가 AJAX 호출에서 NULL을 반환하는 이유는 무엇입니까?

여기

로 다시 전송하고 데이터의 NULL 반환하는

header.php 내 코드

<?php 
    include_once("obtainData.php"); 
?> 

<!DOCTYPE html> 
<html lang="es"> 
    <head> 
    <meta charset="utf-8"> 
    <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
    <title>AJAX CALL</title> 

    <!-- JQuery --> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
    </head> 
    <body> 
입니다

index.php를

<?php 
    include_once("header.php"); 
?> 

<div> 
    <h3>AJAX CALL</h3> 
    <p> 
    <?php 
     sendData(); 
    ?> 
    </p> 
</div> 

<?php 
    include_once("footer.php"); 
?> 

footer.php

 <script> 
      $.ajax({ 
       url: "obtainData.php", 
       data: {action: 'sendData'}, 
       type: 'GET', 
       success: function(data) { 
       alert(data); 
       alert("Success"); 
       }, 
       error: function() { 
       alert("Error."); 
       } 
      }); 
     </script> 
    </body> 
</html> 

obtainData.php 내 임베디드 PHP 내 sendData 메소드를 호출하면

<?php 
    if(isset($_POST["action"])){ 
     $action = $_POST['action']; 
     switch($action) { 
      case 'sendData': 
       sendData(); 
       break; 
     } 
    } 

    function sendData(){ 
     $array = []; 

     for($i = 0; $i < 20; $i++){ 
      $array[$i] = "prove"; 
     } 

     echo json_encode($array); 
    } 
?> 

는 나에게 출력을 보여줍니다하지만 AJAX에서 그것을 얻을 수 없습니다입니다 요구.

내가 누락 된 항목이 있습니까?

미리 감사드립니다.

+0

type: 'POST',에 – Raman

답변

3

Ajax 통화에서 type: 'GET',을 사용 중입니다.

그리고 PHP 파일에서 $_POST을 검색하려고합니다. 그게 아무것도없는 이유입니다.

SO type: 'GET', 변경 가져 오거나 POST를

+0

음 ... 지금은 너무 당황 변경합니다. 예, 문제였습니다. 고맙습니다! –

2

GET 요청을 보내고 있지만 값을 검색하는 데 $_POST을 사용하기 때문에 문제가 발생했습니다. 결과적으로 isset($_POST["action"])은 항상 false입니다.

$_GET을 사용하여 PHP 코드의 값을 검색하거나 POST 요청을 보내도록 jQuery를 변경하십시오.

관련 문제