Schodemeiss
Schodemeiss

Reputation: 1174

Post serialized form data and extra variables using JQuery

I am trying to use this piece of code to serialize a form AND send an extra variable not found in the form, at the same time. The following line of code is what I expected, but sadly does not work.

var thePage = theFilename();
$.post("pagedetail.php", { $("#PageDetailForm").serialize(), thePage: thePage },
    function(data) {
        alert(data); 
});

Any ideas?

Upvotes: 9

Views: 5451

Answers (5)

demmy
demmy

Reputation: 21

what you can do is to add the extra data to an hidden input and catch it in the pagedetail.php page .

eg lats say your form

   <form id='PageDetailForm'>
   <input type="hidden" name="value"  id="value" value="the value u wamnt to add goes here" />
             ....other inputs
</form>

after this just do your normal $.post

$.post("#pagedetail.php",$("#PageDetailForm").serialize(),function(data){

    $("#ans").html(data);

// in the pagedetail.php

$echo $_POST['value'];

hope dis help if ur still confused hola me @dplumptre

Upvotes: 2

kubanek
kubanek

Reputation: 21

Hopefully you still need this :). Try the serializeArray() method and then push some additional data in the resulting array, so you don't have splitted arrays etc.:

var postData = $('#form-id').serializeArray();
var additionalData = $('#additionalDataID').val();
postData.push({name: 'additionalName', value: additionalData});

and finally:

$.post(URL, postData);

Upvotes: 1

user969124
user969124

Reputation: 23

Try sortable('toArray'):

var thePage = theFilename();

$.post("pagedetail.php", { pageDetailForm: $("#PageDetailForm").sortable('toArray'), thePage: thePage },
    function(data) {
        alert(data); 
});

Upvotes: 0

Kemo
Kemo

Reputation: 7042

    var serialized = $('#PageDetailForm').serialize();
    serialized.thePage = thePage;

    $.post("pagedetail.php", serialized,
    function(data) {
        alert(data); 
});

Upvotes: 6

karim79
karim79

Reputation: 342635

Try this for the second parameter to $.post:

 { form: $("#PageDetailForm").serialize(), thePage: thePage }

Upvotes: 1

Related Questions