Автоматическая отправка формы не отправляет данные

0

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

<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>
Теги:
forms

1 ответ

0

Ваша форма будет отправлена сразу. Вам необходимо передать заявку, пока вы не напишете элементы в поле.

Лучше запускать событие submit в элементе form, вместо того, чтобы пытаться click на кнопку. Вы можете использовать parent() с submit() для достижения этого:

$(function() {  
    $('#submit').on('click', function(e) {  
        e.preventDefault();
        $('#file').val($('#download').html());
        $(this).parent('form').submit();
    });
});
  • 0
    Я попробовал это однажды и придерживаюсь этого, но это не работает. Это подчиняется, но ничего не происходит. Это работает на localhost. Посмотрите на Ма отредактированный код
  • 0
    Ваше редактирование не работает, потому что вы никогда не запускаете функцию при нажатии кнопки, только когда DOM готов ... Где находится $('#downloaded') ?
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню