Javascript 使用ajax将php数组传递给另一个php文件

Javascript 使用ajax将php数组传递给另一个php文件,javascript,php,Javascript,Php,我想发送一个数组,这是我从mysql获得的,并使用ajax将其发送到另一个php文件。我无法将数据发送到该文件。我在第一个PHP文件中获取数据。但是当我用JS中的数组设置警报时,输出是未定义的。另一个PHP文件没有收到任何数据 PHP发送到另一个PHP文件 <?php $id = $_GET['id']; $items = mysqli_query($con,"SELECT * FROM COMPARISONFOLDER JOIN ITEM ON ITEM.C

我想发送一个数组,这是我从mysql获得的,并使用ajax将其发送到另一个php文件。我无法将数据发送到该文件。我在第一个PHP文件中获取数据。但是当我用JS中的数组设置警报时,输出是未定义的。另一个PHP文件没有收到任何数据

PHP发送到另一个PHP文件

   <?php

   $id = $_GET['id'];
   $items = mysqli_query($con,"SELECT * FROM COMPARISONFOLDER JOIN ITEM ON ITEM.COMPARISONFOLDER_ID LIKE COMPARISONFOLDER.COMPARISONFOLDER_ID WHERE COMPARISONFOLDER.COMPARISONFOLDER_ID LIKE $id");

   while($item = mysqli_fetch_array($items)) {
       $shuffledItems[] = $item;
   }
   shuffle($shuffledItems);
?>
<html>
<head>
   <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
   <script type="text/javascript">

   jQuery(document).ready(function(){
       getItems();
   });

   function getItems() {
         var urlActiveFillSurvey = "https://vinkovic.ch/test1/activeFillSurvey.php/";
         jQuery.ajax({
             type: 'GET',
             url: urlActiveFillSurvey,
             data: {data : '<?php echo $shuffledItems ?>'},
             processData: false,
             contentType: false,
             success: function(data) {
               jQuery('.data').html(data.responseText);
             },
             error: function(data) {
               jQuery('.data').html(data.responseText);
             }
         });
       }
   </script>
</head>
<body>
<div class="data"></div>
</body>
</html>

jQuery(文档).ready(函数(){
getItems();
});
函数getItems(){
变量urlActiveFillSurvey=”https://vinkovic.ch/test1/activeFillSurvey.php/";
jQuery.ajax({
键入:“GET”,
url:urlActiveFillSurvey,
数据:{数据:'},
processData:false,
contentType:false,
成功:功能(数据){
jQuery('.data').html(data.responseText);
},
错误:函数(数据){
jQuery('.data').html(data.responseText);
}
});
}
应该获取数组的PHP文件

<?php
require ('../wp-blog-header.php');
$data = $_GET['data'];
echo "<table border='1'>
    <tr>
    <th>Item 1</th>
    <th>Item 2</th>
    </tr>";

    echo "<tr>";
    echo '<td><img src="data:image/jpeg;base64,'.base64_encode($data[0]['ITEM']).'" width="500" height="auto"/></td>';
    echo '<td><img src="data:image/jpeg;base64,'.base64_encode($data[1]['ITEM']).'" width="500" height="auto"/></td>';
    echo "</tr>";

echo "</table>";
数据:{data:'},
是错误所在的位置,请更改为

data: {data : '<?php echo json_encode($shuffledItems) ?>'},
数据:{data:'},

或者
base64\u encode
或者
url\u encode
json输出,使其url友好

为什么不传递id,直接在将要使用它的PHP文件中获取数据呢?似乎没有必要先在后端(您的PHP)中获取数据,将其发送到前端只是为了将其发送回后端。这是因为我想在不重新加载页面的情况下实时更新页面。第二个PHP文件将显示在第一个PHP文件中。如果您将id传递给第二个PHP文件并在那里进行查询,结果将是相同的,但在后端和前端之间来回移动的数据较少。您仍将使用Ajax传递id,并以相同的方式获得响应。您将向javascript文件添加原始php数组,还将$\u get更改为$\u POST类型。。如果HTTP requestjson_encode和base64_encode的请求体中的数据仍然不显示任何内容,这将使您的生活更加轻松。使用url_encode,它不再显示表。在sucess函数中使用do console.log(数据)。我确信数据是纯html。点击Ctrl+Shift+i以查看日志
data: {data : '<?php echo json_encode($shuffledItems) ?>'},