2012-06-19 24 views
5

lo que estoy haciendo es crear un formulario utilizando JSON, este formulario se puede editar y producir un nuevo objeto JSON. El problema que estoy teniendo parece ser obtener el id del formulario. El código que estoy utilizando para devolver un objeto JSON es:cómo enviar el formulario como objeto JSON

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; 
    }); 
}); 

Esto acaba de refresco con el pageI no estoy seguro de por qué. Este programa no está en un servidor y no se usará en un servidor. con esto quiero decir que solo se ejecutarán localmente en una máquina local, sin configuración apache2.

Gracias.

+1

Tiene un montón de errores tipográficos en su código. 'from',' seralize' – ThiefMaster

+0

Este programa no está en un servidor y no se usa en un servidor. ¿medio? Por favor, escriba claramente el requisito ... si desea enviar datos como json, consulte el ejemplo de jquery ajax {post: 'json'}. – Rajesh

+0

pregunta editada – Sagarmichael

Respuesta

9

Tu código se puede escribir bastante fácil. Así es como lo hago:

Ajax:

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

Si no lo está enviando el Ajax, ¿por qué haces esto? Si simplemente enviar el formulario, puede hacerlo utilizando PHP como esto:

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

Disculpas, las envío con ajax. – Sagarmichael

+0

Pruebe mi primer código entonces. Creo que hará las cosas mucho más fáciles para ti. – 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'); 
    } 
    }); 
}); 

si no desea redirigir o refrescar el uso e.preventDefault();

Cuestiones relacionadas