2015-07-03 16 views
8

Mẫu:AJAX biểu mẫu gửi - Không có dữ liệu trở

<form action="" id="register" method="post"> 
    <input type="text" placeholder="eg. John"> 
    <input type="text" placeholder="eg. Appleseed"> 
    <input type="text" placeholder="[email protected]"> 
</form> 

JS:

$('form#register').on('submit',function (e) { 
    $.ajax({ 
     url: 'submit.php', 
     cache: false, 
     type: 'POST', 
     context: this, 
     data : $(this).serialize(), 
     success: function(json) { 
      console.log("json: " + json); 
     } 
    }); 
    e.preventDefault(); 
}); 

PHP:

$formData = json_encode($_POST); 
echo print_r($formData,1); 

... sau khi điền vào mẫu và nhấn gửi, nó gửi biểu mẫu mà không có lỗi, nhưng dữ liệu được trả về (JSON) trống:

json: []

Tôi đang làm gì sai?

+0

Bạn cần phải làm một số lỗi cơ bản. Tìm trong tab Net của công cụ nhà phát triển của bạn. Nhìn vào yêu cầu được gửi đến 'submit.php'. Liệu nó có dữ liệu biểu mẫu trong nó mà bạn mong đợi? Nhìn vào phản ứng. Nó có chứa dữ liệu bạn mong đợi không? – Quentin

+0

Sử dụng thẻ mạng công cụ dành cho nhà phát triển. Kiểm tra dữ liệu nào được gửi đến máy chủ và dữ liệu nào được trả về từ máy chủ. – OIS

+0

Cách duy nhất tôi có thể tạo lại điều này là nếu không có dữ liệu tuần tự trong biểu mẫu (mà bạn chưa chia sẻ với chúng tôi) ngay từ đầu. – Quentin

Trả lời

4

Điều này là do bạn không sử dụng name thuộc tính trong các lĩnh vực của bạn

serialize() 

Yêu cầu name trường trong mẫu của bạn

+0

Ah heck, cảm ơn người đàn ông! – 3zzy

+0

Bạn thân của tôi .. –

2

1: -

$formData = json_encode($_POST); echo print_r($formData,1);

nên là: -

$formData = json_encode($_POST); 
echo $formData; 

2.You không có name thuộc tính trong các lĩnh vực hình thức của bạn. vui lòng cung cấp nếu không serialize() sẽ không hoạt động chính xác.

+0

sự khác biệt khi trả lại dữ liệu và lặp lại nó là gì? – madalinivascu

+1

ông đã sử dụng cả hai 'echo và print_r' cả hai với nhau mà là không chính xác –

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