2012-06-19 64 views
5

những gì tôi đang làm là tạo biểu mẫu bằng cách sử dụng JSON biểu mẫu này sau đó có thể được chỉnh sửa và tạo đối tượng JSON mới. Vấn đề tôi đang gặp có vẻ là với việc nhận dạng id. Mã tôi đang sử dụng để trả về một đối tượng JSON là:cách gửi biểu mẫu dưới dạng đối tượng 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; 
    }); 
}); 

Điều này chỉ làm mới trang Tôi không chắc chắn lý do tại sao. Chương trình này không có trên máy chủ và không được sử dụng trên máy chủ. bởi điều này tôi có nghĩa là nó chỉ là tất cả sẽ được chạy cục bộ trên một máy địa phương, không có thiết lập apache2.

Cảm ơn.

+1

Bạn có khá nhiều lỗi chính tả trong mã của mình. 'from',' seralize' – ThiefMaster

+0

Chương trình này không có trên máy chủ và không được sử dụng trên máy chủ. có nghĩa? Vui lòng viết rõ ràng yêu cầu .. nếu bạn muốn gửi dữ liệu dưới dạng json, hãy kiểm tra jquery ajax {post: 'json'} example .. – Rajesh

+0

câu hỏi đã chỉnh sửa – Sagarmichael

Trả lời

9

Bạn có thể viết mã dễ dàng. Đây là cách tôi làm điều đó:

Ajax:

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

Nếu bạn không phải gửi nó với Ajax, tại sao bạn nên làm việc này? Nếu bạn chỉ đơn giản là gửi biểu mẫu, bạn có thể làm điều đó bằng PHP như thế này:

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

Xin lỗi tôi gửi nó với ajax. – Sagarmichael

+0

Hãy thử mã đầu tiên của tôi sau đó. Tôi nghĩ rằng nó sẽ làm cho mọi thứ dễ dàng hơn nhiều cho bạn. – 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'); 
    } 
    }); 
}); 

nếu bạn muốn không chuyển hướng hoặc làm mới sử dụng e.preventDefault();

Các vấn đề liên quan