Hafsul Maru
Hafsul Maru

Reputation: 393

Sending json and js variable data to php script in a single ajax request

JAVASCRIPT: On clicking a button I want to do the following:

var paymentPeriodId = $('#paymentPeriodID').val();
if(paymentPeriodId < 1 ){alert('Payment period not set.');e.preventPropagation();return false; }
if(checkedRows.length < 1){alert('Supervisor not selected.');e.preventPropagation();return false; }

checkedRows = $.toJSON(checkedRows);    
var formData = new FormData();
formData.append("paymentPeriodId", paymentPeriodId);
formData.append("checkedRows", checkedRows);

//    alert(JSON.stringify(checkedRows));
alert(paymentPeriodId);
alert(checkedRows);

var qurl = '<?php echo base_url();?>salary_processing/summeriseProduction';
$.ajax({
url: qurl,
type: "POST",
data:formData,
success: function(data){

        alert('successfull');
//            var data = $.parseJSON(data);
//            alert(JSON.stringify(data));

      },
});

PHP: This function will receive the values and will do some database operation. It is not mentioned here.

public function summeriseProduction() {

// Unescape the string values in the JSON array
 $supervisorIdArray = stripcslashes($this->input->post('checkedRows'));
 $paymentPeriodId = $this->input->post('paymentPeriodId');
 // Decode the JSON array
   $supervisorIdArray1 = json_decode($supervisorIdArray, TRUE);
 // $paymentPeriodId1 = json_decode($paymentPeriodId, TRUE);

 echo json_encode($supervisorIdArray1);
//    echo $paymentPeriodId;

}

https://stackoverflow.com/users/4476402/pekka ,It is not working.

Upvotes: 2

Views: 135

Answers (2)

Hafsul Maru
Hafsul Maru

Reputation: 393

var formData = new FormData();
var paymentPeriodId = $('#paymentPeriodID').val();
checkedRows = $.toJSON(checkedRows);
formData.append("paymentPeriodId", paymentPeriodId);
formData.append("checkedRows", checkedRows);
var qurl = '<?php echo base_url();?>salary_processing/summeriseProduction';
$.ajax({
url: qurl,
type: "POST",
processData: false,
contentType: false,
data: formData,         
success: function(data){}

It woks like this.

Upvotes: 0

guradio
guradio

Reputation: 15555

var formData = new FormData();
var paymentPeriodId = $('#paymentPeriodID').val();
checkedRows = $.toJSON(checkedRows);
formData.append("paymentPeriodId", paymentPeriodId);
formData.append("checkedRows", checkedRows);
var qurl = '<?php echo base_url();?>salary_processing/summeriseProduction';
$.ajax({
url: qurl,
type: "POST",    
data: formData,         
success: function(data){}

try like this

Upvotes: 2

Related Questions