За последние 24 часа нас посетили 39711 программистов и 1284 робота. Сейчас ищут 1254 программиста ...

открытие результатов формы в новом окне

Тема в разделе "JavaScript и AJAX", создана пользователем Slavka, 23 окт 2013.

  1. Slavka

    Slavka Активный пользователь

    С нами с:
    1 окт 2013
    Сообщения:
    722
    Симпатии:
    41
    Даже не знаю с чего начать =) нашел себе геморой на 5 точку
    суть
    в диалоговом окне заполняется форма ( без кнопки сабмит) обработка идет ниже просто стоит <button>

    далее я обрабатываю кнопку так
    var form_name = $("#form_name").serialize();
    $.post("file.php", form_name);

    теперь усложняем
    форма должна отдавать пользователю docx. Для решения данной ситуебины на серваке я использовал PHPWord - в тестовом прогоне - ( как из примеров) все работает, форма отдается пользователю - но там то идет в новом окне - header злые штуки ((
    так как можно сделать чтобы этот $.post или на худой конец $.get открывал результат в новом окне

    кстати у гет помойму предел параметров меньше чем у пост или я ошибаюсь, просто в будущем могут быть очень большие формы .. несколько вкладок и все такое .. тут отчеты оччч большие бывают.
     
  2. Slavka

    Slavka Активный пользователь

    С нами с:
    1 окт 2013
    Сообщения:
    722
    Симпатии:
    41
    пока - забил костыль ((
    Код (Text):
    1.  var form_name= $("#form_name").serialize();
    2.                      $.post("file.php?data=val1", form_name)
    3.                                  .done(function() {
    4.                                         window.open("file.php?data=val2");                
    5.                                        
    6.                                     });
     
  3. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    да давай новую страницу просто с редиректом на ссылку с файлом.
     
  4. Slavka

    Slavka Активный пользователь

    С нами с:
    1 окт 2013
    Сообщения:
    722
    Симпатии:
    41
    нету файла =) вот как с сервака отдается
    Код (PHP):
    1.    require_once $_SERVER['DOCUMENT_ROOT'].'/lib/php/PHPWord.php';
    2.     $PHPWord = new PHPWord();
    3.     $document = $PHPWord->loadTemplate($_SERVER['DOCUMENT_ROOT'].'/lib/template/Template1.docx');
    4.     $document->setValue('data_akta', $data[0]['data_akta']);
    5. //......    
    6.     $temp_file = tempnam(sys_get_temp_dir(), 'PHPWord');
    7.     $document->save($temp_file);
    8.     header('Content-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document');
    9.     header('Content-Disposition: attachment;filename="1.docx"');
    10.     header('Cache-Control: max-age=0');
    11.     readfile($temp_file); // or echo file_get_contents($temp_file);
    12.     unlink($temp_file);  // remove temp file
    13.  
    отдал файлик и тютю его =)

    Добавлено спустя 33 минуты 7 секунд:
    оффтоп
    Просто выругаться хочу - достают дибилоиды - вчера спросил тебе надо хранить данные которые ты вводить будеш - он такой неее .. никогда .. надо только чтобы последнее введенное было сохранено .. ну я и делаю соотвествующую табличку .. где просто в строках храню что он там введет ..
    седне приходит говорит а мне надо еше другой отчет итоговый - который формируется из всех этих данных что вводятся!! <ПИП> ну что за дибилы!!

    Добавлено спустя 1 минуту 15 секунд:
    да еще и в экселе .. пойду крутить phpexcel (( чую к концу мне придется написать phpaccess (шутка)
     
  5. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Письменно надо такие беседы вести
     
  6. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Новое окно можно еще сделать в стиле <div> =))