2012-06-19 7 views
5

was ich tue, erstellt ein Formular mit JSON dieses Formular kann dann bearbeitet werden und ein neues JSON-Objekt erstellen. Das Problem, das ich habe, scheint mit der Form ID zu sein. Der Code, den ich ein JSON-Objekt zurückzugeben, bin mit ist:wie Formular als JSON-Objekt senden

form = document.forms[0]; 
$.fn.serializeObject = function() 
{ 
    alert("start serializeObject"); 
    var o = {}; 
    var a = this.seralizeArray(); 
    $.each(a, function(){ 
     if (o[this.name] !== undefined) { 
      if (!o[this.name].push) { 
       o[this.name] = [o[this.name]]; 
      } 
      o[this.name].push(this.value || ''); 
     } else { 
      o[this.name] = this.value || ''; 
     } 
    }); 
    return o; 
    alert(o); 
}; 

$(function() { 
    alert("here"); 
    form.submit(function(){ 
     result.append(JSON.stringify(form.serializeObject())); 
     return false; 
    }); 
}); 

Das gerade ist Refresh die pageI ist nicht sicher, warum. Dieses Programm befindet sich nicht auf einem Server und wird nicht auf einem Server verwendet. damit meine ich es wird nur jeder lokal auf einem lokalen Rechner ausgeführt, ohne apache2 Setup.

Danke.

+1

Sie haben eine Menge Tippfehler in Ihrem Code. 'from',' seralize' – ThiefMaster

+0

Dieses Programm befindet sich nicht auf einem Server und wird nicht auf einem Server verwendet. meint? Bitte schreibe klar die Anforderung .. wenn du Daten als json einreichen willst dann überprüfe jquery ajax {post: 'json'} Beispiel .. – Rajesh

+0

editierte Frage – Sagarmichael

Antwort

9

Sie Code kann ziemlich einfach geschrieben werden. Dies ist, wie ich es tun:

Ajax:

$('#formID').on('submit',function() { 
    $.ajax({ 
     url: 'submit.php', 
     cache: false, 
     type: 'POST', 
     data : $('#formID').serialize(), 
     success: function(json) { 
      alert('all done'); 
     } 
    }); 
}); 

Wenn Sie es nicht mit Ajax senden, warum sollten Sie das tun? Wenn Sie einfach das Formular abschicken, können Sie es tun PHP wie folgt aus:

<?php 
$json_object = json_decode($_POST); 
?> 
+0

Entschuldigung, ich sende es mit Ajax. – Sagarmichael

+0

Versuchen Sie dann meinen ersten Code. Ich denke, es wird dir die Dinge viel leichter machen. – OptimusCrime

2
$('#formID').on('submit',function (e) { 
    e.preventDefault(); 
    $.ajax({ 
     url: 'submit.php', 
     cache: false, 
     type: 'POST', 
     data : $('#formID').serialize(), 
     success: function(json) { 
     alert('all done'); 
    } 
    }); 
}); 

wenn Sie wollen nicht umleiten oder Verwendung e.preventDefault refresh();