У меня есть форма, в которой данные отправляют данные через AJAX, а затем обновляет div без перезагрузки всей страницы. Пока хорошо, и все работает отлично.Данные формы сообщения с AJAX и триггер действия PHPExcel с одним отправкой
Моя проблема: мне нужно добавить второе действие к этой форме. Те же значения, но разные действия. Оба действия работают отлично в одиночку, но я просто не могу заставить их работать в одном и том же представлении.
Второе действие - это скрипт, генерирующий xls с PHPExcel
и запускающий загрузку.
Как включить в AJAX следующее process_xls.php
, так что он запускается с тем же подачей?
process_xls.php
$year = $_POST['year'];
$nmbr = $_POST['nmbr'];
$code = $_POST['code'];
include("excel/PHPExcel.php");
$objPHPExcel = new PHPExcel();
// ....
// code creating xls here
// ....
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="Summary.xlsx"');
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save('php://output');
exit;
HTML-:
<div id="container">
<form id="form_year" method="post">
<input type="hidden" name="year" value="2015">
<input type="hidden" name="nmbr" value="22">
<input type="hidden" name="code" value="5Tvfr5T">
<div class="button-small"><input type="submit" name="" value=""></div>
</form>
// ....
// some data displayed here
// ....
</div>
(класс "button-small
" только для CSS)
Javascript
<script type="text/javascript">
$(document).ready(function()
{
$(document).on('submit', '#form_year', function()
{
var data = $(this).serialize();
$.ajax({
type : 'POST',
url : 'process_year_data.php',
data : data,
success : function(data)
{
$("#form_year").fadeOut(500).hide(function()
{
$("#container").fadeIn(500).show(function()
{
$("#container").html(data);
});
});
}
});
return false;
});
});
</script>
Любой высокоэнергетический лазер p очень оценили!
Вы пытаетесь изменить URL-адрес своего вызова AJAX или пытаетесь изменить действие формы? Если вы пытаетесь нажать 'process_xls.php', нужно изменить ajax-url на то, что не будет? – JammyDodger231
На самом деле я хочу, чтобы одна и та же форма представляла два разных действия: для url 'process_year_data.php' с AJAX и после этого для url' process_xls.php' как простое действие post (без AJAX). Возможно ли вообще совместить это в одной форме? – chrimens