У меня есть страница с динамическим контентом и кнопка для сохранения в формате PDF. Я отправляю через ajax содержимое в файл php.
Проблема в том, что мое приложение никогда не обновляется.
Если я изменил содержимое на странице, а затем нажмите кнопку сохранения pdf, содержимое $ _POST никогда не изменится до обновления страницы.
Кто-то знает, как я могу это сделать, чтобы избежать этого?
Ajax запрос в событие JQuery при нажатии кнопки.
$(document).on("click", "#saveAll", function(event) {
event.preventDefault();
var nombre = 'savedImageData'+Math.random();
var overviewLoad = '';
var programsLoad = '';
var barriersLoad = '';
var rolesLoad = '';
var relationsLoad = '';
var printcont = '';
$('#printall').html('');
overviewLoad = $("#orgoverview").html();
programsLoad = $("#orgprograms").html();
barriersLoad = $("#orgbarriers").html();
rolesLoad = $("#orgroles").html();
var src1 = $("#canvasImg").attr("src");
relationsLoad = $("#orgrelations").html();
var rolestoles = $('#orgroles').html();
$('#printall').append(overviewLoad);
$('#printall').append('<div class="page">');
$('#printall').append(programsLoad+'</div>');
$('#printall').append('<div class="page">');
$('#printall').append(barriersLoad+'</div>');
$('#printall').append('<div class="page">');
$('#printall').append(relationsLoad+'</div>');
$('#printall').append('<div class="page">');
$('#printall').append(rolestoles+'</div>');
printcont = $('#printall').html();
$('<input>').attr('value', '');
$('<input>').attr({
type: 'hidden',
name: 'contenido',
id: 'contenido',
value: printcont
}).prependTo('form#getPDF');
$.ajax({
method: "POST",
url: "run/runpdf.php?"+Math.random(),
data: $("form#getPDF").serialize(),
cache: false,
headers: { "cache-control": "no-cache" },
success: function(someMessageFromPhp) {
mystring = someMessageFromPhp.replace('../','');
window.open(mystring+'?'+Math.random());
$('#downloadPDF').hide();
}
});
});
Php
<?php
header("Expires: Tue, 03 Jul 2001 06:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
define('DOMPDF_ENABLE_AUTOLOAD', true);
// include DOMPDF's default configuration
require_once 'dompdf/dompdf_config.inc.php';
$contenido .= utf8_encode($_POST['contenido']);
$dompdf = new DOMPDF();
$dompdf->set_paper('LETTER', 'portrait');
$dompdf->load_html($contenido);
$dompdf->render();
header('Content-type: application/pdf');
$output = $dompdf->output();
file_put_contents('Brochure.pdf', $output);
?>
Как вы отправляете сообщения через ajax или php? –
Привет @ KarthikKeyan Спасибо за ваш ответ. '$ .ajax ({ типа: "POST", URL: "Работа/runpdf.php" + Math.random(), данные:. $ ("Форма № GetPDF") сериализации(), cache: false, заголовки: {"cache-control": "no-cache"}, success: function (someMessageFromPhp) { mystring = someMessageFromPhp.replace ('../', ''); window.open (mystring + '?' + Math.random()); $ ('# downloadPDF'). hide(); } }); ' –
Я думаю, что функция ajax неправильно вызвана –