2012-11-19 42 views
5

Tôi đã thử nhiều cách để thực hiện việc này, bằng cách tìm kiếm trên stackoverflow cho câu trả lời.gửi hai biểu mẫu với một nút gửi jQuery

tôi có hai hình thức

Mẫu 1 thiết lập cơ bản:

<form action="/post" class="frm-form" method="post" name="post" 
onsubmit="return vB_Editior['text_editor'].prepare_submit(0,0)" id="quick_reply"> 
    <textarea></textarea> 
     <input type="submit" name="post" value="Send"> 
</form> 

Mẫu 2 thiết lập cơ bản:

<form enctype="multipart/form-data" id="tagnotif" style="display:none;" 
onsubmit="return vB_Editor['text_editor'].prepare_submit(0,0)" name="post2" 
method="post" action="/privmsg"> 
    <input id="username" class="post" type="text" tabindex="1" size="25" 
     name="username[]"style="margin:1px 0"><br /> 
    <input id="acpro_inp10" class="post" type="text" 
    onkeypress="if (event.keyCode==13){return false}" title="" tabindex="2" 
    maxlength="64" size="45" value="You have been tagged" name="subject"><br /> 
    <textarea id="textingnotification" rows="15" cols="9" 
    name="message" tabindex="3"></textarea> 
    <input type="hidden" value="" name="lt"> 
    <input type="hidden" value="inbox" name="folder"> 
     <input type="hidden" value="post" name="mode"> 
</form> 

Tôi chỉ cần hai hình thức phải nộp vào SEND báo chí của đầu tiên biểu mẫu

HƯỚNG DẪN SỬ DỤNG VẤN ĐỀ MÃ NÀY VỚI TẬP ĐOẠN CHÍNH: Mặc dù nó sẽ không p ass cả hai, và nó sẽ không làm mới trang ...

$(document).ready(function() { 
    $('#quick_reply').ajaxForm(function() { 
      alert("Thank you for your submitting form 1"); 
    }); 
    $('#tagnotif').ajaxForm(function() { 
      alert("Thank you for your submitting form 2"); 
    }); 

}); 

function mySubmitFunction() { 
    $("#quick_reply").submit(); 
    $("#tagnotif").submit(); 
} 
+0

Tại sao bạn không thể làm cho họ một hình thức? – Andrew

+0

Chỉ tạo cho họ một biểu mẫu? – wakooka

+0

Cần phải có hai hình thức riêng biệt kể từ khi một gửi đến/privmsg và khác gửi đến/đăng – EasyBB

Trả lời

4

Tôi không nghĩ rằng bạn có thể làm hai bài yêu cầu thường xuyên từ một trang html đơn, bởi vì làm cho bài liên quan đến việc rời khỏi trang và làm theo tấm phản hồi chuyển hướng.

Nếu bạn đang gửi biểu mẫu qua ajax, tại sao không chỉ thực hiện một nút ajax duy nhất và lấy các thông số cần thiết để dính vào yêu cầu? IE:

$.ajax({ 
    type: 'POST', 
    dataType: 'JSON', 
    data: {param1: $('input#param1').val(), param2: $('input#param2').val()}, 
    url: 'url to post to', 
    success: (your success callback function goes here) 
}) 
+0

Một hình thức là bình luận về một hình thức. Hình thức khác là để gửi PM. Về cơ bản, hack của tôi ở đây là như vậy khi người dùng gắn thẻ một người dùng khác, người dùng đó sẽ gửi cho người dùng được gắn thẻ PM ghi rõ vị trí của Thẻ và họ đã được gắn thẻ. Đó là lý do tại sao tôi cần phải gửi cả hai. Làm thế nào tôi sẽ đi về điều này? Không có php kể từ khi tôi không có quyền truy cập vào nó trên trang web lưu trữ. – EasyBB

+0

Cũng tạo ra một nút AJAX sẽ khó khăn, hình thức đầu tiên được tạo ra bởi một biến php {quick_reply} vì vậy vâng tôi không thực sự có quyền truy cập vào bit đó chỉ là bit thứ hai. Mã thứ hai được ẩn này về cơ bản là một hack cho trang web lưu trữ trang web – EasyBB

+0

Bạn có thể thay đổi đánh dấu trên trang ở tất cả, hoặc là bạn hoàn toàn bị mắc kẹt với những gì bạn có? – Andrew

1

Thực hiện việc này trước tiên, bạn cần phải xóa từng nút gửi khỏi hai biểu mẫu này Nếu biểu mẫu có nút gửi thì thao tác này sẽ không hoạt động.

Mẫu Đầu tiên

<form action="/post" id="frm-form" class="frm-form" method="post" name="post" 
onsubmit="return vB_Editior['text_editor'].prepare_submit(0,0)" id="quick_reply"> 
    <textarea></textarea> 
     <input id="frm-submit" type="button" name="post" value="Send"> 
</form> 

Second Mẫu

<form enctype="multipart/form-data" id="tagnotif" style="display:none;" 
onsubmit="return vB_Editor['text_editor'].prepare_submit(0,0)" name="post2" 
method="post" action="/privmsg"> 
    <input id="username" class="post" type="text" tabindex="1" size="25" 
     name="username[]"style="margin:1px 0"><br /> 
    <input id="acpro_inp10" class="post" type="text" 
    onkeypress="if (event.keyCode==13){return false}" title="" tabindex="2" 
    maxlength="64" size="45" value="You have been tagged" name="subject"><br /> 
    <textarea id="textingnotification" rows="15" cols="9" 
    name="message" tabindex="3"></textarea> 
    <input type="hidden" value="" name="lt"> 
    <input type="hidden" value="inbox" name="folder"> 
     <input type="hidden" value="post" name="mode"> 
</form> 

JQuery

$("#frm-submit").change(function(){ 
    $("#frm-form").submit(); 
    $("#tagnotif").submit(); 
}); 

này sẽ Làm mới trang và nộp hai hình thức

+0

Bây giờ tôi không sử dụng jQuery, điều này cũng vô ích;) đơn giản và linh hoạt để đăng so le. – EasyBB

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