Ajax публикует данные в таблицу Excel - PullRequest
0 голосов
/ 29 марта 2019

Итак, я пытаюсь поместить данные в лист Excel, я делаю это следующим образом,

Сначала отправляем данные через сообщение ajax:

  <!doctype html>
  <html lang="en">
  <head>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
 </head>
 <script>
 $(document).ready(function(){
$("#form").on('submit', function() {
    $(function() {
        var hello = "hello world";
        $.ajax ({
            type: 'POST',
            url: 'example.php',
            data: {hello: hello},
            success: function(result) {
                console.log('success');
            }
        });
    });
   });
    });
    </script>
   <body>
   <form id="form" action="example.php" method="post">
   <input type="submit" value="submit">
   </form>
   </body>
   </html>

Затем я помещаю их влист Excel:

   <?php 
   include "../includes/PHPExcel.php";

   $title = "Verrijking ";

   $hello = $_POST['hello'];

   $objPHPExcel = new PHPExcel();
   $objPHPExcel->getProperties()->setCreator("RM Netherlands B.V.")
        ->setLastModifiedBy("RM Netherlands B.V.")
        ->setTitle($title)
        ->setSubject($title)
        ->setDescription($title)
        ->setKeywords($title)
        ->setCategory($title);

   $pcbestand = date('Ymdhis') . ".xlsx";

   $objPHPExcel->getActiveSheet()
        ->setCellValue("A"."1", $hello);
   $objPHPExcel->getActiveSheet()->getColumnDimension("A")->setAutoSize(true);


   $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
   $objWriter->save($pcbestand);

   $file = $pcbestand;
   header('Content-disposition: attachment; filename='.$file);
   header('Content-type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
   header('Content-Length: ' . filesize($file));
   header('Content-Transfer-Encoding: binary');
   header('Cache-Control: must-revalidate');
   header('Pragma: public');
   ob_clean();
   flush();
   readfile($file);

  $DelFilePath = $setup['/var/www/clients/client1/web1/web/nordin/'.$pcbestand.''] . $pcbestand;

  if (file_exists($DelFilePath)) { unlink ($DelFilePath); }
  ?>

последняя часть создает диалоговое окно сохранения в файл и следит за тем, чтобы оно не загружалось на сервер.

Но это проблема, которую я не получаюпост ajax ($ _POST ['hello']) в мой лист Excel, даже если пост ajax успешен.Что я делаю неправильно?пожалуйста, помогите.

1 Ответ

0 голосов
/ 29 марта 2019

Здесь есть две проблемы. Во-первых, в обратном вызове click () у вас нет e.preventDefault (), что делает отправку вашей формы «нормальной» без вашего JS (именно поэтому вы получаете приглашение на загрузку). Вторая проблема заключается в том, что вы не можете использовать Ajax, если хотите загрузить ответ. Поместите ваш привет в скрытый ввод в вашей форме и удалите JS, и это будет работать. - Магнус Эрикссон

Это сработало в пользу Магнуса Эрикссона.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...