sending post data with jquery on form submission

javascript, jquery, php

Solution

Rather than using a submit button, use a regular button and control the submission via Javascript. In your javascript, you need to serialize the form and pass it as data along with anything else you want.

<script>

    $(document).ready(function() {

       var extra_data = "This is more stuff to send";

       $('#submit').click(function() {
          $.ajax({
             type: "POST",
             url: "form.php",
             data: {'form': $("#my_form").serialize(), 'other': extra_data},
             success: function(msg) {
                alert("Form Submitted: " + msg);
             }
          });

       });

    });

</script>

<form id="my_form" method="post">
  <input type="text" name="name" />
  <input type="button" id="submit" />
</form>

Problem

If I have this form which submits the post data to the page itself: ``` <form method="post"> <input type="text" name="name"/> <input type="submit"/> </form> ``` How will I be able to use JavaScript/jQuery to inject an additional POST data. This would be easier if I only submit the form via ajax using any of the functions like `$.post()`, `$.get()`, or `$.ajax()`. But what I want to do here is to submit the form not via ajax. The additional data is in JavaScript. I'm thinking of just injecting a new hidden field into the DOM in which I will pass in the data so that it gets submitted with the form, but is there other way of doing it? Please comment if you need more code/explanation.

Original source