2012-02-07 5 views
0

ここは私のjavascriptです。 jQueryにフォームデータをPHPファイルに送信させようとしています。私はそれから、phpファイルからデータを取得して表示するように指示します。しかし、戻ってくるのはすべて「ヌル」です。私がバイオなどの別の値を要求すると、それを表示することができます。しかし、それは私のフォームから送信された表示データを傾けることができません。ここで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

<?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); 

?> 

はあなたの助けのためにありがとうございましたさ!

+0

jsonの適切なコンテンツタイプは 'application/json'です – Trevor

+0

完全なフォームを表示してください。 –

+0

同じPHPページを2回呼び出す2段階プロセスがあるのはなぜですか?あなたは最初の呼び出しから適切な情報を返すことができませんか? – 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]にアクセスしようとしました。ここで、$ _POST ['email']に対してsignin.phpは何も返しません。空です。あなたのコードでは、getJSONの呼び出しは不要です。データ型を 'json'に設定した$ .ajax() - 要求のみを使用してください。 –

+0

正しいです。なぜそれは空ですか?どうすれば修正できますか? – Karl

1

phpがデータを送り返していることを確認しましたか? phonegapに入っているので、あなたのサーバ上のphpを参照する必要があります。plistに外部ホストがリストされていることを確認してください。

xcodeでは、phoneGap.plistファイルに外部ホストが表示され、そこに新しいエントリが追加されます。キーは問題ではありませんが、値が*に設定されていると、すべての外部ドメインが許可されます。

あなたのPHPでは、 "hello world"とconsole.logというメッセージがあなたのajaxにエコーされます。

それは、その後され、あなたのPHPにアクセスするためにあなたのことを知っているので、次のステップはへの上に変数を渡すことで動作する場合、単に

json_encode($_POST['email']); 

をエコーすることから始めることが動作するかどうか次のステップは、送信することです背中全体の要求 -

echo json_encode($profile); 

ちょうど予想通りのデータ結果が戻ってくるならば、あなたのようなインデックスを使用してVARSを割り当て、任意ののlocalStorageを割り当てる前にデータの結果をログコンソール現在、ちょうどdr.mobileのように言ったんその余分なリクエストは必要ありません。既に持っていますデータ。

+0

私のPHP配列 "Karl"は、配列の1位にあります。合格しない唯一の値は、$電子メール値です。 – Karl

+0

あなたの入力名は電子メール形式であることを確信していますか? –

+0

である。私のフォームからのデータがPOSTingなので、PHP $ _POST()から使用できないようになっています。 – Karl

関連する問題