2011-12-27 21 views
0

PHPスクリプトに少しJSONを投稿するには、jQuery内で$.ajax()呼び出しを使用する必要があります。jQuery AJAX呼び出し(PHPへのPOST)の問題

私はすべてを試しましたが、私はそれが好きなように何も動作しません。私は$ _POST/$ _ GET配列のvar_dumpをエコーし​​ようとしますが、それは空に戻ります。

var myJSONObject = {"bindings": [{"conversation": _conid} ]}; 
var obj = $.toJSON(myJSONObject); 

$.ajax({ 
    type: "POST", 
    url: "./code/ajax/fetch_messages.php", 
    data: obj, 
    async:true, 
    contentType: "application/json; charset=utf-8", 
    dataType: "json", 
    success: function(data) 
    { 
    }, 
    error: function (XMLHttpRequest, textStatus, errorThrown) 
    { 
    }, 
    beforeSend: function (XMLHttpRequest) 
    { 

    }, 
    complete: function (XMLHttpRequest, textStatus) 
    { 
    }}); 

私はポストをヘッダに調べることによって行われることがわかります。

{ "バインディング":[{ "会話": "38x001c61450ad4d5abd47c37408e8236eb5427f54e2930000306882646e4016c5f8ecf8e00a18a26ab3b6d07f6727bd187625daaedf951f93072d54d59e300e100"}]}

PHP:

echo var_dump($_POST); 

$.post()コールを使用するとすべてがうまく動作しますが、いつでも問題が発生します。 $.ajaxに切り替えようとしています。 UTF-8でエンコードされたレスポンスを取得できるようにするために使用する必要があります。

このポストに貼り付けられたコードは、私が試した多くのスニペットの1つで、Web上のチュートリアルの例は機能しません。

私はそれを試すことができるように働くことを知っているスニペットを教えてください。 POSTを介したJSONの送信以下$_POST['myjson']

答えて

1

は、私はあなたのJSON文字列のキーを与えなければならないと思いますので、あなたは反対側(PHP)にそれを得ることができます私のルーチンのスライスとそれは正常に動作します:

var data = 'post_type=' + post_type.val() + '&page_id=' + 
page_id.val() + '&home_page=' 
+ home_page.attr('checked') + '&archive_page=' + 
archive_page.attr('checked') + '&search_page=' + 
    search_page.attr('checked'); 


    //start the ajax 
     $.ajax({ 
      //this is the php file that processes the data and send mail 
      url: "?service=set_data", 

      //GET method is used 
      type: "GET", 

      //pass the data   
      data: data,  

      //Do not cache the page 
      cache: true, 

      //success 
      success: function (html) {       
        $(".no-items").hide("slow"); 
        $("#list_table").append(html).hide().slideDown('slow');    
      }  
     }); 
+0

いいえ、それは動作しませんでした。これは myjson =%7B%22bindings%22%3Aの%5B%7B%22conversation%22%3A%の2238x001c61450ad4d5abd47c37408e8236eb5427f54e2930000306882646e4016c5f8ecf8e00a18a26ab3b6d07f6727bd187625daaedf951f93072d54d59e300e100%7Dは 'のcontentType' 行を削除してください – Josef

+0

22%7Dの%の5D%のJSONから送信されたヘッダのフォーマットを変更しました'$ .ajax'オプションから、または' 'application/x-www-form-urlencoded''に設定してください。 – bfavaretto

+0

Yeey!それが問題でした!ありがとう。奇妙なことに、チュートリアルではそれを問題として見ていませんでした。 – Josef

1

があるに

data: {"myjson": obj}, 

が続いPHP上では次のようになります。

+0

ありがとうございます。しかし、私はjsonを送信しないで "get"を使うときに何の問題もありません。 – Josef

関連する問題