Это один файл, который я использую для автоматического отправки данных в другой файл
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<form action="/site/downloadprint" method="post">
<textarea style="" id="file" name="file"></textarea>
<input type="submit" id="submit" />
</form>
<script>
$(document).ready(function(e) {
var html=$('#download').html();
$('#file').val(html);
$('#submit').click();
});
</script>
<div id="download">
some html
</div>
Он открывает www.mysite.com/site/downloadprint, но он пуст. Он работает, когда я вручную нажимаю кнопку
if(isset($_POST["file"]))
{
$path=$_SERVER['DOCUMENT_ROOT']."/temp/".mt_rand().".html";
$file=fopen($path, 'w');
fwrite($file, $_POST['file']);
fclose($file);
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="'.basename($path).'"');
header('Content-Length: ' . filesize($path));
readfile($path);
}
EDITED:
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<form action="/site/downloadprint" method="post">
<textarea style="display:none;" id="file" name="file"></textarea>
</form>
<script>
$(document).ready(function(e) {
var html=$('#download').html();
$('#file').val(html).parents("form").submit();
});
</script>
<div id="download">
some html
</div>
Ваша форма будет отправлена сразу. Вам необходимо передать заявку, пока вы не напишете элементы в поле.
Лучше запускать событие submit
в элементе form
, вместо того, чтобы пытаться click
на кнопку. Вы можете использовать parent()
с submit()
для достижения этого:
$(function() {
$('#submit').on('click', function(e) {
e.preventDefault();
$('#file').val($('#download').html());
$(this).parent('form').submit();
});
});
$('#downloaded')
?