简体   繁体   中英

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;
        },
    }),
});

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

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"); }
                        }      
                  })
             }
        })
    });

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM