1

利用可能な変数のリストがあり、$。ajaxの投稿で送信したいと思います。関数.serializeを使用するには、これらをどの形式で保持する必要がありますか?私はこのエラーを受け取り続けます:

オブジェクト「空白」にはメソッド「シリアル化」がありません

私はそれらを配列にしようとしました、そして私はjQuery.param()を試しました。シンプルな感じがしますが、なかなかわかりません。ありがとう!

var $data = jQuery.makeArray(attachmentId = attachmentID, action = 'rename', oldName = filename, newName, bucketName, oldFolderName, newFolderName, projectId = PID, businessId = BID);
var serializedData = $data.serializeArray();
//alert(theurl);

$.ajax({ type: "post", url: theurl, data: serializedData, dataType: 'json', success:  reCreateTree });  
4

2 に答える 2

3

.serializeフォーム要素用です

フォーム要素のセットを送信用の文字列としてエンコードします。

$.ajaxドキュメントには、dataオプションについて記載されています。

サーバーに送信されるデータ。まだ文字列でない場合は、クエリ文字列に変換されます。GETリクエストのURLに追加されます。processDataこの自動処理を防ぐオプションを参照してください。オブジェクトはキーと値のペアである必要があります。値が配列の場合、jQueryは、従来の設定(以下で説明)の値に基づいて、同じキーで複数の値をシリアル化します。

したがって、必要なのはオブジェクトを渡すことだけです。例えば:

$.ajax({ 
    type: "post", 
    url: theurl, 
    data: {                             // <-- just pass an object
          attachmentId: attachmentID,
          action: 'rename',
          // ...
    },
    dataType: 'json', 
    success:  reCreateTree 
});  
于 2012-05-30T14:24:41.153 に答える
3

PHPスタイルの配列(連想配列)に慣れているようです。Javascriptでは、オブジェクトは基本的に同じものです(ただし、はるかに複雑になる可能性があります)。

したがって、phpでこのような配列を作成しようとすると、次のようになります。

$array = array(
    "foo" => "bar",
    "bar" => "foo",
);

配列の代わりにオブジェクトを使用するJavascriptでは、次のようになります。

var arr = {
    foo: "bar",
    bar: "foo"
}
于 2012-05-30T14:24:55.317 に答える