Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.11.2018, 04:04   #1
GenrihMgs
Новичок
Джуниор
 
Регистрация: 27.11.2018
Сообщений: 4
По умолчанию сохранение SQL-запроса с помощью PHPExcel по нажатию на кнопку

Здравствуйте.
Есть база Mysql и PHP 7.2 надо реализовать сохранение результата SQL запроса в заранее созданный шаблон Excel, без обновления страницы.
Создал выборку из БД с помощью Ajax запроса, но никак не получается создать кнопку для сохранения этого результата в шаблон *.XLSX, При нажатии на кнопку 'Сохранить в Excel', файл не сохраняется. Хотя модуль Save_Evid_Excel.php без вызова по нажатию на кнопку работает без проблем т.е. если его сделать Index.php.

Код Index.php
PHP код:
<?php
include "connection.php";//Подключаем БД
$result $connect->query("SELECT custom_users.UIC, custom_users.FIO FROM custom_users ORDER BY custom_users.FIO ") or die('error!');
?>
<html>
<head>
<style>
..............
  </style>
 
<meta http-equiv="Content-Type" content="text/html; Charset=UTF-8">
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
 
</head>
<body>
<form id="myForm">
  Расширенный поиск:<br>
  <select id="UIC">
    <option > </option>
    <?php
 
        
while(($row $result->fetch_assoc()) != FALSE){
        print 
"<option value=".$row['UIC'].">";
        print 
$row['FIO'];
        echo(
"</option>");
        }
    
?>
 
</select>
 
<div class="layer1">
    Период показа:<br>
    с <input type="date"  name="S_date" id="S_date" max="2040-04-20" min="2008-04-10" value=""/>
    по <input type="date" name="PO_date" id="PO_date" max="2040-04-20" min="2008-04-10" value=""/>
</div>
 
<div class="layer2">  
 
<button id="Search_Evid">ПОИСК!!!</button>
<button id="SaveExcel" >Сохранить в Excel</Button>
 
</div>
</form>
    
<div id="Save_xlsx"></div>    
<div id="content"></div>
 
 
<script>
$(document).ready(function(){
  
    $('#Search_Evid').click(function(){
      $.ajax({
        type: "POST",
        url: "show.php",
        data: { UIC: $("#UIC").val(), S_date: $("#S_date").val(), PO_date: $("#PO_date").val() },
        success: function(html){
           $("#content").html(html);
         }
      });
    return false;
    });
 
    $('#SaveExcel').click(function(){
      $.ajax({
        type: "POST",
        url: "Save_Evid_Excel.php",
        data: { UIC: $("#UIC").val(), S_date: $("#S_date").val(), PO_date: $("#PO_date").val() }
      });
      return false;
    });
 
});
</script>
</body>
 
 <?php
 
//закрываем соединение с БД
 
$connect->close();
 
?>
Код файла Save_Evid_Excel.php
PHP код:
require_once dirname(__FILE__) . '/Classes/PHPExcel.php';
 
$objReader PHPExcel_IOFactory::createReader('Excel2007');
$objPHPExcel $objReader->load('Shablon/repEvid.xlsx');
 
$objPHPExcel->setActiveSheetIndex(0);    
$sheet $objPHPExcel->getActiveSheet();
 
$objPHPExcel->setActiveSheetIndex(0)
            ->
setCellValue('A4''Hello')
            ->
setCellValue('B5''world!')
            ->
setCellValue('C4''Hello')
            ->
setCellValue('D5''world!');
$Name_file 'Rep_Evid_'date("Ymd");
 
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="'.$Name_file.'.xlsx"');
header('Cache-Control: max-age=0');
$objWriter PHPExcel_IOFactory::createWriter($objPHPExcel'Excel2007');
$objWriter->save('php://output'); 
Пожалуйста подскажите в чем моя ошибка и как это правильно реализовать.
GenrihMgs вне форума Ответить с цитированием
Старый 27.11.2018, 09:52   #2
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от GenrihMgs Посмотреть сообщение
При нажатии на кнопку 'Сохранить в Excel', файл не сохраняется. Хотя модуль Save_Evid_Excel.php без вызова по нажатию на кнопку работает без проблем т.е. если его сделать Index.php.
Нужно смотреть возможные ошибки в консоли браузера, которые могут появляться при нажатии на кнопку и выполнении AJAX-запроса.
Andkorol вне форума Ответить с цитированием
Старый 28.11.2018, 02:38   #3
GenrihMgs
Новичок
Джуниор
 
Регистрация: 27.11.2018
Сообщений: 4
По умолчанию

Если не трудно, подскажите как это правильно сделать
GenrihMgs вне форума Ответить с цитированием
Старый 28.11.2018, 06:45   #4
GenrihMgs
Новичок
Джуниор
 
Регистрация: 27.11.2018
Сообщений: 4
По умолчанию

Добавил в файл Save_Evid_Excel.php

error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);

Ни каких ошибок не выходит
Возможно надо как то под другому вызывать Save_Evid_Excel.php ???
GenrihMgs вне форума Ответить с цитированием
Старый 28.11.2018, 08:53   #5
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,150
По умолчанию

сказали же - смотри консоль... знаешь что это?
f12 в большинстве браузеров, мне лично FF больше всех нравится
закладка консоль - обязательно добавить отображение XHR запросов
при аякс запросе в этом окошке будешь видеть запрос к серверу, его ответ
... по своему опыту, в 99% - проблема в путях....
ADSoft вне форума Ответить с цитированием
Старый 28.11.2018, 09:37   #6
GenrihMgs
Новичок
Джуниор
 
Регистрация: 27.11.2018
Сообщений: 4
По умолчанию

ADSoft и Andkorol - Огромное спасибо Вам за помощь. Все получилось
GenrihMgs вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Заполнение таблицы с помощью запроса SQL Arya Stark SQL, базы данных 1 28.11.2017 21:21
По нажатию на кнопку появляются pictureBox Валерия6 Помощь студентам 1 07.05.2017 18:08
Удаление записи из БД, с применением SQL-запроса и сохранение последовательности индексов. ml_alex C/C++ Базы данных 4 22.04.2012 13:34
Удаление строки с помощью SQL запроса (Query1.SQL.ADD('Delete....')) Schutze Помощь студентам 6 29.11.2009 22:15
Возникла проблема в программировании SQL запроса с помощью компонента TQuery Herly БД в Delphi 23 07.11.2009 18:16