2013-12-10 2 views
1

У меня есть форма, которую я хочу отправить стандартным способом (не Ajax), используя jQuery.jQuery form submit - как добавить данные?

Вот мой код:

<form id="myform" action="post.php" method="post"> 
    <input type='text' value='12' name="student_id"/> 
    <button data-action="delete" class="form-button"><i class="icon-ok"></i> 
    </button> 
    <button data-action="approve" class="form-button"><i class="icon-ok"></i> 
    </button> 
</form> 

$(document).ready(function(){ 

    $('.form-button').click(function(e){ 

    //which button clicked 
    var button_action = $(this).attr(" data-action"); 

    //how do I append button_action to post data?? 

    //submit form 
    $("#myform").submit(); 

    }); 

}); 


Как добавить значение «данные действия» кнопки, которая была нажата для почтовых параметров, так что я использовать это в моем PHP файл, чтобы узнать, какая кнопка нажата?

ответ

2

Один простой способ заключается в использовании Скрытое поле

<form id="myform" action="post.php" method="post"> 
    <!-- use this input to store the clicked button value --> 
    <input type='hidden' name="action" /> 
    <input type='text' value='12' name="student_id" /> 
    <button data-action="delete" class="form-button"><i class="icon-ok"></i></button> 
    <button data-action="approve" class="form-button"><i class="icon-ok"></i></button> 
</form> 

затем

$(document).ready(function() { 
    $('.form-button').click(function (e) { 
     var $form = $("#myform"); 
     $form.find('input[name="action"]').val($(this).data("action")) 

     $form.submit(); 
    }); 
}); 
+0

Простой синтаксис с $ ('form'). Submit (function() {}); – Kyobul

0

Используйте hidden поле,

<form id="myform" action="post.php" method="post"> 
    <input type='text' value='12' name="student_id"/> 
    <input type='hidden' name="action"/> 
    <button data-action="delete" class="form-button"><i class="icon-ok"></i> 
    </button> 
    <button data-action="approve" class="form-button"><i class="icon-ok"></i> 
    </button> 
</form> 

Вот ваш Jquery,

$(document).ready(function(){ 

$('.form-button').click(function(e){ 

//which button clicked 
var button_action = $(this).attr(" data-action"); 

$('input[name="action"]').val(button_action); 

//submit form 
$("#myform").submit(); 

}); 

}); 
+0

это выглядит хорошо и довольно просто, позвольте мне попробовать это – fredmarks

+1

@fredmarks Рад помочь. –

2

Отправить кнопки сделать это естественно, не нужно писать сценарии. Если у него есть имя и значение, кнопка отправки отправит эту пару имя = значение с формой, если она нажата.

Просто добавьте type="submit" name="action" в <button> элементов. и изменить data-action на value, или сделать value дубликат data-action.

+0

Это должен быть ответ, нет необходимости писать что-то, что работает естественно. – ryanulit