Retrieving Serialize Data in a Php File Called Using Ajax

Form sending AJAX code:

var str = $("form").serialize();
alert(str);
// var uns=@unserialize(str);
//alert(uns);
$.ajax({
    type: "POST",
    url: "update.php",
    data: "box1="+str,
    success: function(value)
    {
        $("#data").html(value);  
    }

HTML Form:

<form>
  <input type=checkbox name=box[] value='1'/><input type=checkbox name=box[] value='2'/>
</form>  

In my PHP:

$box=$_POST['box1'];    

How can I access each of the box variable values in PHP side?

8 Answers

Your js should be like this:

var str = $("form").serializeArray();
$.ajax({  
    type: "POST",  
    url: "update.php",  
    data: str,  
    success: function(value) {  
            $("#data").html(value);
    }
});

With php you should loop your result array.

$box = $_POST['box'];
foreach ($box as $x) {
    echo $x;
}

Edit: You have to use serializeArray function in jQuery. Then it will work with this code.

1

Provided that your server is receiving a string that looks something like this

    $("form").serialize();
   "param1=someVal&param2=someOtherVal"

...something like this is probably all you need:

    $params = array();
    parse_str($_GET, $params);

$params should then be an array modeled how you would expect. Note this works also with HTML arrays.

See the following for more information:

Hope that's helpful. Good luck!

your JS should be like this -

var str = $( "form" ).serializeArray();
    var postData = new FormData();
     $.each(str, function(i, val) {
                postData.append(val.name, val.value);
 });
$.ajax({
           type: "POST",
           data: postData,
           url: action,
           cache: false,
           contentType: false,
           processData: false,
           success: function(data){
              alert(data);
          }
    });

Now do this in your php script -

print_r($_POST);

you will get all form data in alert box.

$data = array();
foreach(explode('&', $_POST[data]) as $value)
{
    $value1 = explode('=', $value);
    $data[$value1[0]] = validateInput($value1[1]);
}

var_dump($data['box']);
1

your data in php will contain a string like this

field1=value1&field2=value2&....

so you can get your value1 using $_POST['field1] , value2 with $_POST['field2']

Change

data: "box1="+str,

into

data: str,

serialize() will produce a string like: input1=value1&input2=value2. So in your php you can access each value with, for instance $value1 = $_PHP['input1'];

values=$("#edituser_form").serialize();//alert(values);
    $.ajax({
        url: 'ajax/ajax_call.php',
        type: 'POST',
        dataType:"json",
        data: values,
        success: function(){
            alert("success");
        },
        error: function(){
            alert("failure");
        }
    });

$box=$_POST['box']; and $box is an array.

1

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Chloe Bennett

Chloe Bennett

Culture, Media & Entertainment Columnist

Chloe Bennett explores the intersection of pop culture, streaming entertainment, digital trends, and contemporary lifestyle. Her weekly commentary reaches thousands of culture enthusiasts.

Share this article
Twitter Facebook Pinterest