Balsara Dhaval
Balsara Dhaval

Reputation: 135

How to pass the select box value as an array using AJAX from one page to another in PHP?

var message = $("#send_message").val();

    var Teaminput = $("#sms_reminder_team").val();
    for (var i = 0; i <Teaminput.length; i++) 
    {
       var team=Teaminput[i];
    }

    var Memberinput = $("#sms_reminder_members").val();
    for (var i = 0; i <Memberinput.length; i++) 
    {
    var members=Memberinput[i];

  }

Get 2 varaibles as array members and team

var parameter = "message="+message+"&team="+team+"&members="+members;
  $.ajax({
  url: base_url+'ajaxfiles/dir_sendmessage',
  type: 'POST',
  data: parameter,
  success: function(data)
  {
    document.getElementById('check').innerHTML = data; 
  }
  });

How to send both array variables using AJAX from current page to "dir_sendmessage".

Upvotes: 0

Views: 647

Answers (4)

Balsara Dhaval
Balsara Dhaval

Reputation: 135

$("#msg-send-btn").click(function() {
      var message = $("#send_message").val();
      var optionsmembers = $('#sms_reminder_members option:selected');
      var members = $.map(optionsmembers ,function(option) {
      return option.value;
      });

//---- Using $.map get all selcted data as a an Array.

var postData = {
                  message,
                  members
               }

//---- For Avoid Json-Stringfy.

 $.ajax({
  url: base_url+'ajaxfiles/dir_sendmessage.php',
  type: 'POST',
  data:{myData:postData},

//----- And It's Work Perfectly.

Upvotes: 0

Arun
Arun

Reputation: 3721

Change the below line

var parameter = "message="+message+"&team="+team+"&members="+members;

to

var parameter = "message="+message+"&team="+JSON.stringify(team)+"&members="+JSON.stringify(members); 

Edit: Modify like this too

var team = [];
var members = [];
for (var i = 0; i <Teaminput.length; i++) 
{
   team=Teaminput[i];
}

var Memberinput = $("#sms_reminder_members").val();
for (var i = 0; i <Memberinput.length; i++) 
{
   members=Memberinput[i];
}

Note: When you add var in each line in the loop, it will declare a new variable. You have to edit like the above code

After update the code with the JSON.stringify() function, you will be able to get the value as an array in you PHP code

Ajax will not directly pass Jquery array to PHP

Upvotes: 1

Kaja Mydeen
Kaja Mydeen

Reputation: 585

var message = $("#send_message").val();
    var teaminputt = $("#sms_reminder_team").val();
    team = new Array();
    members = new Array();
    for (var i = 0; i <teaminputt.length; i++) 
    {
       var team=teaminputt[i];
    }

    var memberinput = $("#sms_reminder_members").val();
    for (var i = 0; i <memberinput.length; i++) 
    {
    var members=memberinput[i];

    }

    var parameter = "message="+message+"&team="+team+"&members="+members;
    $.ajax({
        url: base_url+'ajaxfiles/dir_sendmessage',
        type: 'POST',
        data: parameter,
        success: function(data)
        {
        document.getElementById('check').innerHTML = data; 
        }
    });

Upvotes: 0

xxnations
xxnations

Reputation: 645

First of all ideally you should send in JSON format or use array.tostring() ( can avoid this )

But if you have to send it as array you can try following:

$.ajax({ 
url: base_url+'ajaxfiles/dir_sendmessage', 
type: 'POST',
 data: {team:team, members: members}, 
success: function(data) { 
document.getElementById('check').innerHTML = data; } });

Upvotes: 0

Related Questions