0

我有包含图像路径的数组,

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: { 
genRep: "sample value"
},
success: function(data) {
                 alert(data);
             console.log('getting '+data);
             }

    });

示例值已成功传递,但是如何将数组传递给 ajax 并在另一个页面上使用它?我尝试传递数组并使用下面的代码,但它不起作用

$data1 = $_REQUEST['genRep'];

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

7 回答 7

1

尝试使用 json 对象。在对象中,您可以存储图像路径

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

联系人.php

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

 echo $info[0]; // will print something...
于 2013-10-28T07:35:08.203 回答
1

试试喜欢

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

});

它会将您的数组发送为genRep

于 2013-10-28T07:34:08.143 回答
1
$arr = array();
$arr[0] = "Mark Reed";
$arr[1] = "34";
$arr[2] = "Australia";
echo json_encode ($arr);

在 php 页面上使用它并使用以下内容获取输出

success:function(msg){
id_numbers = JSON.parse(msg);
alert(id_numbers)
}
于 2015-10-12T05:58:23.093 回答
0

尝试:

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

在 PHP 方面,你会想要打印:

print json_encode($photos);

做了一些改变

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

然后在服务器上,您可以通过以下方式访问这些:

data.photolist[0]; //First photo
于 2013-10-28T07:35:58.663 回答
0

我已经测试过了,这肯定会奏效!

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

生成PDF.php

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

然后你可以遍历$image_array来获取值。

于 2013-10-28T07:55:43.640 回答
0

尝试这个

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"

更正的代码:

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 应该有这样的刺痛:

image1=../images/Desert1.jpg&image2=../images/Desert2.jpg 等等

于 2013-10-28T07:57:09.630 回答
0
if(isset($_REQUEST['genRep']))
{
$data = $_REQUEST['genRep'];
print_r($data1);
echo "tested".$data1[0];

createPdf($data);
    }

我的代码是正确的,索引 0 上没有任何值,这就是它没有打印任何东西的原因。我的错误!

于 2013-10-28T07:57:34.027 回答