0

I have array containg image path ,

GenerateReport[0] ="../images/Desert1.jpg"
GenerateReport[1] ="../images/Desert2.jpg"
GenerateReport[2] ="../images/Desert3.jpg"
GenerateReport[3] ="../images/Desert4.jpg"
GenerateReport[4] ="../images/Desert5.jpg"

I am trying to pass this array with following code,

$.ajax({
type: "POST",
url: "generatePdf.php",
data: { 
genRep: "sample value"
},
success: function(data) {
                 alert(data);
             console.log('getting '+data);
             }

    });

sample value is passed successfully , but how can i pass array to ajax and use it on another page?? i tried passing array and using with below code but it is not working

$data1 = $_REQUEST['genRep'];

echo "tested".$data1[0];
2

7 Answers 7

1

Try like

genRep = []; 
$.ajax({
    type: "POST",
    url: "generatePdf.php",
    data: { 
        genRep: GenerateReport
    },
    success: function(data) {
        alert(data);
        console.log('getting '+data);
    }

});

It will send your array as genRep

Sign up to request clarification or add additional context in comments.

5 Comments

Any reason to down it..??
i didnt .... same function i am using to pass array , just dont know how to use on another page
Just print the genRep on that page.
Error Array to string conversion in <b>C:\xampp\htdocs\eyfs\web\generatePdf.php</b> on line <b>11</b><br /> testedArray
genRep is also need to be an array type.Initialize it as an array
1

try to use json object. in object you can store your images path

           var data=[]; // array
           var data[0] = 'something';
           var data[1] = 'something1';
           var data = { 'name': name, 'email' : email, 'contact' : contact, 'type' : type, 'msg' : msg }; // object 
           $.ajax({
               url : 'contact.php',
               type : 'POST',
               data : {contact:JSON.stringify(data)}, // for json object
               data : {contact: data}, // for array
               success : function (msg)
               {
                   alert(msg);
               }
           })

contact.php

 $info = $_POST['contact'];
 $info = json_decode($info,true); // for json object
 echo $info.name; // for json object

 echo $info[0]; // will print something...

1 Comment

i want to pass array not json
1
$arr = array();
$arr[0] = "Mark Reed";
$arr[1] = "34";
$arr[2] = "Australia";
echo json_encode ($arr);

use this on the php page and use the following to get the output

success:function(msg){
id_numbers = JSON.parse(msg);
alert(id_numbers)
}

Comments

0

Try:

$.ajax({
    url: "generatePdf.php",
    type: 'POST',
    data: form_data,
    dataType:"json",
    success: function(data) {
        alert(data[0]);
   }

On the PHP side, you'll be wanting to print:

print json_encode($photos);

Made Some Change

print json_encode(array("photolist"=>$photos));

Then on the server, you'd access these with:

data.photolist[0]; //First photo

3 Comments

i want to pass array not json
photolist[0] whats this??
updated my code print json_encode(array("photolist"=>$photos));
0

I have tested it, this will definitely work !

JS:

var GenerateReport = [];
GenerateReport[0] ="../images/Desert1.jpg";
GenerateReport[1] ="../images/Desert2.jpg";
GenerateReport[2] ="../images/Desert3.jpg";
GenerateReport[3] ="../images/Desert4.jpg";
GenerateReport[4] ="../images/Desert5.jpg";

$.ajax({
    type: 'POST',
    url: 'generatePdf.php',
    data: 'image_array='+GenerateReport,
    success: function(msg) {
        alert(msg);
    }
});

generatePdf.php :

<?php
$image_string = $_POST['image_array'];
$image_array = explode(",", $image_string);
print_r($image_array);
?>

Then you can loop over the $image_array to get the values.

Comments

0

try this

GenerateReport[0] ="../images/Desert1.jpg"
GenerateReport[1] ="../images/Desert2.jpg"
GenerateReport[2] ="../images/Desert3.jpg"
GenerateReport[3] ="../images/Desert4.jpg"
GenerateReport[4] ="../images/Desert5.jpg"

corrected code:

var imagedata = '';
$.each(GenerateReport,function(index,value))
{
  if(imagedata=='')
  {
    imagedata = imagedata +'image'+index+'='+value;
  }
  else
  {
    imagedata = imagedata +'&image'+index+'='+value;
  }
});
$.ajax({
type: "POST",
url: "generatePdf.php",
data: imagedata               //pass string imagedata
success: function(data) {
                 alert(data);
             console.log('getting '+data);
             }

    });

imagedata should have sting like this:

image1=../images/Desert1.jpg&image2=../images/Desert2.jpg and so on

Comments

0
if(isset($_REQUEST['genRep']))
{
$data = $_REQUEST['genRep'];
print_r($data1);
echo "tested".$data1[0];

createPdf($data);
    }

My code was correct , there was no value on index 0 , thats why it was not printing anything .My Mistake !!!

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.