Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Send array with ajax request to php

I created array like this ["9", "ques_5", "19", "ques_4"]. Now I want to send it from JS to PHP but I'm not getting proper results. My JS code is:

$(".button").click(function(e) {

    e.preventDefault();
    $.ajax({
        type    : 'post', 
        cache   : false,
        url     : 'test/result.php',
        data    : {result : stuff},
        success: function(resp) {
            alert(resp);
        }
    });
});

In the above code stuff is an array which contains records. How can I send this array with above code and then in PHP I want to process this array like ques_5 is the key and 9 become the value for that key.

like image 680
Mahmood Rehman Avatar asked Feb 13 '13 04:02

Mahmood Rehman


2 Answers

You can pass the data to the PHP script as a JSON object. Assume your JSON object is like:

var stuff ={'key1':'value1','key2':'value2'};

You can pass this object to the php code in two ways:

1. Pass the object as a string:

AJAX call:

$.ajax({
    type    : 'POST',
    url     : 'result.php',
    data    : {result:JSON.stringify(stuff)},
    success : function(response) {
        alert(response);
    }    
});

You can handle the data passed to the result.php as :

$data    = $_POST["result"];
$data    = json_decode("$data", true);

//just echo an item in the array
echo "key1 : ".$data["key1"];

2. Pass the object directly:

AJAX call:

$.ajax({
    type    : 'POST',
    url     : 'result.php',
    data    : stuff,
    success : function(response) {
        alert(response);
    }    
});

Handle the data directly in result.php from $_POST array as :

//just echo an item in the array
echo "key1 : ".$_POST["key1"];

Here I suggest the second method. But you should try both :-)

like image 188
Sherin Jose Avatar answered Oct 04 '22 08:10

Sherin Jose


If you want to send key value pairs, which is what I am seeing, it would be better to use a PHP JSON library (like this one... http://php.net/manual/en/book.json.php)

Then you can send actual key value pairs, using JSON format like... {"ques_5" : "19", "ques_4": "19"}

like image 35
FloatingCoder Avatar answered Oct 04 '22 10:10

FloatingCoder