2013-05-23 34 views
6

Trong javascript, tôi có một số dữ liệu mà tôi muốn gửi dưới dạng bài đăng (NOT ajax). Nó sẽ hoạt động giống như khi người dùng đã nhấp vào nút gửi. Tuy nhiên, tôi không có một hình thức thực tế. Dữ liệu được thu thập từ trang này thành các biến khác nhau, bao gồm một mảng mà tôi mã hóa dưới dạng json.javascript/jquery: tạo và đăng biểu mẫu ảo

Tôi có thể tạo biểu mẫu html có hiển thị: không, đặt giá trị vào biểu mẫu này và sau đó kích hoạt nút gửi ẩn. Có cách nào tốt hơn?

+0

có lý do nào để không sử dụng AJAX không? – Bizniztime

+0

tôi đoán bạn đang tìm kiếm điều này: http://www.blakepell.com/Main/BlogEntry.aspx?EntryID=30cb4de1-7aab-4798-966b-ab66f629b899 – DmitryK

Trả lời

0

Cách tốt nhất làm bên ngoài này của ajax có lẽ là cách bạn mô tả với một hình thức vô hình. Mặc dù vấn đề lạ.

+0

Điều này có vẻ là sự đồng thuận. Tôi muốn cập nhật trình duyệt, đó là lý do tại sao tôi không sử dụng AJAX. – user984003

+0

Sau đó, yah chỉ cần gửi cho một hình thức bình thường gửi với một hình thức vô hình. Hoặc sử dụng ajax và buộc làm mới với JS tôi giả sử. – Gavin

6

Nếu bạn không muốn/không thể sử dụng Ajax, sau đó bạn phải làm điều đó với một hình thức, đó là sẽ làm mới trình duyệt của bạn:

$('<form action="urlToServer" method="POST"></form>') 
    .append('<input name="data" value="' + yourJSONData + '" />') 
    .submit() 
; 
4

Áp phích "Claudio Bredfeldt" đang đi đúng hướng để làm điều này, nhưng anh bỏ qua một số thông tin quan trọng cần thiết để thực hiện công việc này.

Biểu mẫu không thể gửi trên tất cả các trình duyệt trừ khi chúng được đính kèm với DOM. Vì vậy, những gì bạn cần làm là một cái gì đó như thế này:

var $form = $('<form action="http://myurl" method="POST">'); 
$form.append('<input name="name" value="bob" />'); 
$form.appendTo($('body')).submit(); 

Tùy chọn bạn có thể muốn đính kèm một số css mẫu để nó không xuất hiện cho người dùng khi bạn gây ra sự kiện dưới hình thức bưu điện đến xảy ra. Bạn cũng có thể tùy ý muốn "xóa" phần tử biểu mẫu sau khi đăng để sự kiện "quay lại" sẽ không hiển thị sai tùy thuộc vào hành vi của bộ nhớ cache của trình duyệt.

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