how to pass a javascript associative array in ajax to php file

ajax, javascript, php

Solution

The way i read this, you are in javascript, and you have a javascript object (javascript does not have associative arrays, just arrays and objects). So, whatever data you have, you need to turn it into a string and sent it via POST or GET to your php script. I would recommend including JSON3 as a polyfill to ensure you will have `JSON.stringify` on your page (for cross-browserness). Code will be something like this:

var data = {
    someData: 'data',
    moreData: [
        'blah',
        'bleh'
    ]
};

var stringData = JSON.stringify( data );

// using jquery ajax for brevity (http://api.jquery.com/jQuery.ajax/)
$.ajax({
  type: "POST",
  url: "your-php-script.php",
  data: { data: stringData }
});

Now your php script can snag that string and turn it back into json itself:

<?php
    $dataString = $_POST['data'];
    $data = json_decode($dataString);

Hopefully this is what you were looking for. Cheers!

Problem

How can i pass data (associative array) to php file. ``` function ajax(url,data,callback) { var xmlhttp; if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); } else {// code for IE6, IE5 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange=function() { xmlhttp.onreadystatechange = function() { if ( xmlhttp.readyState === 4 ) { callback( xmlhttp.responseText ); } } } xmlhttp.open("POST",url,true); xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded"); xmlhttp.send(data); } ```

Original source