acedanger
acedanger

Reputation: 1206

Trying to send an array from jquery to PHP function

I'm trying to load an array in my javascript. I need to send this array in some format to a PHP script that I'm going to call. In the example below, gSelectedMeds is my array. The value count will tell the PHP script how many meds items to expect to receive. I'm having trouble getting the data from the array into a format that I can send via the data option of $.ajax. Any help would be greatly appreciated!!

The part of the code below that is giving me grief at the moment is the data option:

$('#export').click(function() {
    $.ajax({
        url:'ajax-exportMeds.php',
        data: 
            {"number":gSelectedMeds.length},
            $.each(gSelectedMeds,
                function(intIndex, objValue){
                    {"med"+intIndex:objValue},
                }
            ),
        type: "GET",
        //dataType: "text",
        success: function(data){
            $('p#allMeds').text('');
            $('a.bank').text('');
            //clear array, bank and storedList divs
            $(this).text('');
            gSelectedMeds[] = '';
            //$('ul#storedList').fadeOut('fast');
            $('ul#storedList').text('');
            return false;
        },
    }),
});

Upvotes: 1

Views: 265

Answers (2)

acedanger
acedanger

Reputation: 1206

I ended up stringing out the array and sending a count at the end of the url that I called:

$('#export').click(function() {
        $.each(gSelectedMeds, 
         function(intIndex, objValue) {
            i=intIndex + 1;
            if(i>1) {string+='&';}
            string+='med'+i+'="'+objValue+'"';
         }
       )

       string += "&count="+i;

        $.ajax({
            url: 'ajax-exportMeds.php?'+string,
            type: "GET",
            dataType: "text",
            success: function(data){
                  $('#dialog_layer').dialog({
                        autoOpen: true,                                                 
                        bgiframe: true,
                        modal: true,
                        closeOnEscape: true,
                        buttons: {
                            "OK": function() { $(this).dialog("close"); }
                        }      
                  })
             }
        })
    });

Upvotes: 0

gnud
gnud

Reputation: 78518

You should send the data as json. Then you can read it using json_decode() in php >= 5.2.0

Upvotes: 4

Related Questions