2009-04-26 11 views
1
私はjqueryの$のアヤックス()を使用し始めています

を失ったが、私は...私はこの送りたいものを取り戻すことはできません。はややjqueryの+ PHP + JSON

$(function(){ 
      $.ajax({ 
       url: "graph_data.php", 
       type: "POST", 
       data: "casi=56&nada=48&nuevo=98&perfecto=100&vales=50&apenas=70&yeah=60", 
       dataType: "json", 
       error: 
       function (xhr, desc, exceptionobj) { 
        document.writeln("El error de XMLHTTPRequest dice: " + xhr.responseText); 
       }, 
       success: 
       function (json) { 
        if (json.error) { alert(json.error); return; } 
        var output = ""; 
        for (p in json) { 
         output += p + " : " + json[p] + "\n"; 
        } 
        document.writeln("Results: \n\n" + output); 
       } 
      }); 
     }); 

との私のPHPは次のとおりです。

<?php 

$data = $_POST['data']; 

function array2json($data){ 
    $json = $data; 

    return json_encode($json); 
} 
?> 

と私は私が出てくる、これを実行します。

結果:

私はphpにecho array2jsonステートメントを持っていたのと同じですが、ちょっと戻ってくれませんでした...私は本当に何が間違っているのか分かりません。同じもの。また、$ .ajax関数の "data:"にパラメータを渡す方法もわかりません。他の方法でWebページから情報を取得するなど、誰でも助けてくれますか?


編集

私はあなたが提案し何をした、それはデータが今私はにデータを送ることができますどのように、私が思っていた、しかし)あなたは非常に=に感謝出力する「データ:」の部分jQueryのでので、ユーザーの入力のは言わせてからそれを取る、また私は、PHPのマニュアルをチェックしていたし、それは私のような何かを書くことが許されてると言う:私がしなければ、私はというエラーを取得していること、

json_encode($a,JSON_HEX_TAG|JSON_HEX_APOS|JSON_HEX_QUOT|JSON_HEX_AMP) 

しかし、 json_encodeは1つのパラメータを受け取り、2 ...どんな考え?私はPHPを使用しています012

+0

dataType: "json" - 小文字にします。 – Anthony

答えて

7

最初:PHPスクリプトに渡すデータは、$_POST['data']ではなく、$_POSTになります。

次:実際にはarray2json関数をいくつかのデータで呼び出す必要があります。そのコードサンプルは完全ですか?

また、私はarray2jsonは何をする予定ですか... json_encodeに直接電話をかけてみませんか?ご例えば

単にあなたのPHPファイルは次のように見えるようにすることができます:Firebugは簡単にあなたのAJAX呼び出しをデバッグするよう

print json_encode($_POST); 

最後に、あなたがツールを取得する必要があります。

EDIT

それのsubmitイベントとserializeデータをキャッチし、または単にget the valueそして、あなたがしなければならないすべてはどこでもあなたのページでformを持っている、ユーザからのデータを送信するためには、個々の入力フィールドの次に、文字列またはオブジェクトとして、それを使ってデータクエリを構築するだけです。また、jQuery用の非常に人気のあるForm pluginもあります。

エラーが発生したのは、json_encodeという2番目の引数がPHP 5.3.0まで追加されていないためです。あなたがそれより前のものを持っているなら、それはあなたに利用できません。

+0

これは素晴らしい答えです!質問に答えて、情報転送を実行する方法を提案していただきありがとうございます。これはFAQ/HOWTOの資料です。 –