2012-02-07 3 views
0

여기 내 자바 스크립트입니다. jQuery가 양식 데이터를 내 PHP 파일로 보낸다. 그런 다음 PHP 파일에서 데이터를 가져 와서 표시하도록 지시합니다. 하지만 돌아 오는 것은 모두 "null"입니다. 바이오와 같은 다른 값을 요청하면이를 표시 할 수 있습니다. 하지만 내 양식에서 보낸 데이터를 표시 할 수 없습니다.jQuery .ajax()와 함께 양식을 제출하면 나에게 null이 제공됩니까?

<script type="text/javascript"> 
    $(document).ready(function() { 
     $("img").click(function() { 
      var data = $('form#signin').serialize(); 
      $.ajax({ 
       url:'signin.php', 
       type:'POST', 
       data: data, 
       success:function(data) { 
        $("p.test").html(data); 
        $.getJSON("signin.php", function(data) { 
         localStorage.email = data[0]; 

        }); 
       }, 
       error:function(data) { 
       } 
      }); 
     }); 
    }); 
</script> 

여기

<?php 

$email = $_POST["email"]; 

$profile = array($email, "Karl", "Clement", "Gangsta Love!", "bio bio bio bio bio bio bio  bio bio bio bio bio bio bio bio bio bio bio", "Ottawa",  "http://a3.twimg.com/profile_images/1459354642/IMG_1560_normal.jpg"); 

header('Content-Type:text/json'); 
echo json_encode($profile); 

?> 

이 도와 주셔서 정말 고마워요 내 PHP입니다!

+0

json의 적절한 content-type은'application/json'입니다. – Trevor

+0

완전한 양식을 보여주십시오. –

+0

두 단계 프로세스가 동일한 PHP 페이지를 두 번 호출하는 이유는 무엇입니까? 첫 번째 전화에서 적절한 정보를 돌려 줄 수 있습니까? – nnnnnn

답변

2

해서 getJSON는 GET 요청을 보내지 만, 당신은 POST 변수에 액세스하려고

$ 아약스() (당신이 $ .getJSON를 통해 어떤 변수를 전송하지 않습니다 정확히 수) -. 요청으로 'json'으로 설정된 데이터 유형이면 충분합니다.

<script type="text/javascript"> 
    $(document).ready(function() { 
     $("img").click(function() { 
      var data = $('form#signin').serialize(); 
      $.ajax({ 
       url:'signin.php', 
       type:'POST', 
       data: data, 
       dataType:'json', 
       success:function(data) { 

         localStorage.email = data[0]; 

       }, 
       error:function(data) { 
       } 
      }); 
     }); 
    }); 
</script> 
+0

.ajax()를 사용하여 데이터를 보내고 .getJSON을 사용하여 데이터를 가져옵니다. – Karl

+1

getJSON의 콜백에서 데이터 [0]에 액세스하려고합니다. 여기서 signin.php는 $ _POST [ 'email']에 대해 아무것도 반환하지 않습니다. 왜냐하면 $ _POST 비었다. getJSON의 호출은 코드에서 불필요합니다. 데이터 유형이 'json'인 –

+0

이 올바른 $ .ajax() - 요청 만 사용하십시오. 왜 비어 있니? 내가 어떻게 고칠 수 있니? – Karl

1

PHP가 데이터를 다시 전송하는지 테스트 했습니까? 당신이 phonegap에 있기 때문에 당신은 당신의 서버에서 php를 참조 할 필요가있다. 또한 plist에 외부 호스트를 열거했는지 확인해야한다.

xcode에서 phoneGap.plist 파일에 외부 호스트가 표시되고 거기에 새로운 항목이 추가됩니다. 키는 중요하지 않지만 *로 설정된 값은 모든 외부 도메인을 허용합니다.

다음 php에서 "hello world"와 console.log 메시지를 여러분의 ajax에 echo합니다. 그 다음 작동하는 경우

당신은 알고 당신의 그 다음 단계로 전송하는 것입니다 작동하는 경우 단지

json_encode($_POST['email']); 

반향하여 다음 단계는 것입니다 통해 변수를 전달하는 것입니다, 그래서 당신의 PHP 액세스 시작할 수 다시 전체 요청 -

echo json_encode($profile); 

그때 예상 현재처럼 인덱스를 사용하여 바르를 할당으로 데이터 결과가 돌아 오면, 모든 로컬 스토리지를 할당하기 전에 데이터 결과를 기록 콘솔,하지만 dr.mobile 말처럼 할 , 당신은 그 여분의 요청을 필요로하지 않는다. 자료.

+0

내 배열의 위치 1에있는 "Karl"이라는 PHP 배열을 통과시킬 수있었습니다. 통과하지 못하는 유일한 가치는 $ email 값입니다. – Karl

+0

그리고 입력 한 이름이 이메일 형식인지 확인하십시오. –

+0

예. 이상하게 여겨지는 곳 ... 내 양식의 데이터가 POSTing이 아니므로 PHP $ _POST()에서 사용할 수 없습니다. – Karl

관련 문제