2017-08-07 1 views
-2

ich ein Formular mit mehreren Feldern haben, die Post Ausgabe wie folgt lautet:serialisiert ein Formular json

Array(
[query] => Array 
    (

     [categories] => Array 
      (
       [0] => 344 
       [1] => 64 
      ), 
     [ages] => Array 
      (
       [0] => 23 
       [1] => 10 
      ) 

    ) 

[post_type] => product 
[section] => my_section 
[action] => my_action 
[page] => 1 
) 

Also ich das Formular Throught Ajax mit ähnlichen json Struktur senden wollen, aber wenn meine Form serialiasing und json.stringify das Ergebnis i unterschiedliche Struktur bekam, die mit meiner Suchmaschine Klasse nicht funktioniert:

var datas = my_form.serializeArray(); 
console.log(JSON.stringify(datas)); 

/// OUTPUT 
var j = [{ 
     "name":"query[categories][]", 
     "value":"344" 
    }, 
    { 
     "name":"query[categories][]", 
     "value":"64" 
    }, 
    { 
     "name":"query[ages][]", 
     "value":"23" 
    } .... 

Für die json ich brauche folgende Struktur:

{ "query":{ 
    "categories":[ 
    "344", 
    "64" 
    ]}, 
    "post_type":"product", 
    "section":"my_section", 
    "action":"my_action", 
    "page":"1" 
} 

Ist es möglich, "flat" the json aus dem Formular, um die gute Struktur zu bekommen? oder gibt es eine lösung? Ich brauche wirklich die gute Struktur.

Danke

+0

es nicht serialisiert Sie? Die Serialisierungsfunktion macht es so, dass Sie die Parameter als URL-Parameter übergeben können. – Danmoreng

+0

Hallo, danke für deine Antwort, aber ich verstehe nicht, was du meinst, ich möchte wirklich das Formular von Ajax senden und die Daten wie oben json Struktur übergeben. – user44321

Antwort

0
$.ajax({ 
      type: $(form).attr('method'), 
      url: $(form).attr('action'), 
      data: $(form).serialize(), 
      dataType: 'json', 
      success: function (data) { 

      }, 
      error: function (xhr, ajaxOptions, thrownError) { 

      } 
     }); 
+0

Verwenden Sie diese Methode, um JSON-Daten während des Posts zu senden. –

Verwandte Themen