Отправить форму с тремя действиями - PullRequest
0 голосов
/ 01 мая 2018

У меня есть трехкнопочная форма. Первая кнопка «только сохранить документ», вторая кнопка «только создать PDF» и третья кнопка «Сохранить документ и создать PDF».

только кнопка Сохранить - просто отправка формы - отлично работает

<form method="post">
  <button type="submit" name="save">
  <input>....
</form>

только кнопка Создать PDF - измените действие формы и цель с помощью простого jquery и отправьте его в генератор PDF - также отлично работает

<form method="post">
   <button type="submit" name="generate" id="generate">
   <input>....
</form>

<script>
$('#generate').click(function(){
   $('form').get(0).setAttribute('action', './library/pdf/generator.php');
   $('form').get(0).setAttribute('target', 'blank'); 
   });
</script>

Сохранить документ и кнопку Создать PDF - здесь мне нужно объединить оба в один клик ... отправить + сохранить данные и открыть генератор PHP в новой вкладке (окне) ... оба с одинаковыми данными POST ... Есть идеи? Я застрял здесь

РЕДАКТИРОВАТЬ: Попробовал этот обратный вызов без удачи .. он открывает только генератор PDF (я начинающий в jquery, так что, возможно, его отсутствие)

$(function() {
$('#saveandgenerate').click(function(){
   $('form').get(0).setAttribute('action', './library/pdf/generator.php');
   $('form').get(0).setAttribute('target', 'blank');
   $('form').get(0).submit(function(){ 
      $('form').get(0).setAttribute('action', '');
      $('form').get(0).setAttribute('target', '');
      $('form').get(0).submit();
      }); 
   });
});

Ответы [ 2 ]

0 голосов
/ 01 мая 2018

Рабочий раствор:

$(function() {
$('#save_and_generate').click(function()
    {
    $('form').get(0).setAttribute('action', './library/pdf/generator.php');
    $('form').get(0).setAttribute('target', 'blank');
    $('form').get(0).submit();
    setTimeout(function() {
        $('form').get(0).setAttribute('action', '');
        $('form').get(0).setAttribute('target', '');
        $("button#save").trigger('click');
        },100); 
    });
});

Отправить с помощью «Сохранить и сгенерировать PDF»> изменить атрибуты формы и открыть принципиально новое окно с PDF> После 100 тайм-аута изменить атрибуты формы по умолчанию> нажать кнопку «Только Сохранить»

0 голосов
/ 01 мая 2018

Я предлагаю использовать простой пост ajax вместо javascript для отправки вашей формы.

<form method="post" id="myForm">
   <button type="button"  id="generate" onclick="save_data();">
         Generate PDF
   </button>
   <input>....
</form>
<script>
     function save_data(){
            $.ajax({
                url: 'first/post/location/url',
                type: 'post',
                data: $("#myForm").serialize(),
                success: function (response) {
                    setTimeout(function (){
                       document.getElementById("myForm").submit();
                    }, 1000);
                }

            });
        }
</script>

Надеюсь, это поможет.

...