Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
1 / 1 / 0
Регистрация: 25.06.2014
Сообщений: 151

Добавление сгенерированного файла в форму

15.06.2016, 20:49. Показов 2902. Ответов 51
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день всем участникам!

Путем длительного поиска и усилий удалось найти решение как сохранить таблицу. Удалось это реализовать с помощью скрипта, который сохраняет таблицу в exel и все вроде ок, но опять тупик не могу понять как сделать, чтоб генерируемый файл после нажатия на кнопку не скачивался, а добавлялся в форму с дальнейшей отправкой по почте?
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<html>
 
<script type="text/javascript">
var tableToExcel = (function() {
  var uri = 'data:application/vnd.ms-excel;base64,'
    , template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"><head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--></head><body><table>{table}</table></body></html>'
    , base64 = function(s) { return window.btoa(unescape(encodeURIComponent(s))) }
    , format = function(s, c) { return s.replace(/{(\w+)}/g, function(m, p) { return c[p]; }) }
  return function(table, name) {
    if (!table.nodeType) table = document.getElementById(table)
    var ctx = {worksheet: name || 'Worksheet', table: table.innerHTML}
    window.location.href = uri + base64(format(template, ctx))
  }
})()
</script>
<body> 
 
 
<form  id="frmselect1"> 
 
<p>Имя: </p><p> <input type= "text" name= "name"> </p> 
 
<p>E-mail: </p><p> <input type= "text" name= "email"></p> 
 
<p>Сообщение: </p><p> <textarea rows= "10" cols= "45" name= "message"></textarea></p> 
 
 
<table id="tbl" cellspacing="0" cellpadding="5" border="0">
<thead ><tr><th></th><th>Высота мм</th><th>Ширина мм</th><th>Кол-во</th><th>Толщина мм</th><th>Квадратура</th><th>Рисунок</th><th>Цена</th><th>Пленка</th><th>Удалить</th></tr></thead>
<tbody></tbody>
<tfoot>
<tr><th colspan="9" style="text-align:right;">Итого деталей МДФ:</th><th></th></tr>
<tr><th colspan="9" style="text-align:right;">Площадь МДФ:</th><th></th></tr>
<tr><th colspan="9" style="text-align:right;">Всего:</th><th></th></tr>
</tfoot></table>
  
<input type= "submit" value= "Отправить"> 
</form>  
</body></html>

и совсем забыл про кнопку , после нажатия на которую просходит конвертация таблицы и автоскачивание
JavaScript
1
<input type="button" onclick="tableToExcel('tbl', 'W3C Example Table')" value="Export to Excel">
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.06.2016, 20:49
Ответы с готовыми решениями:

Добавление данных на форму с текстового файла
Здравствуйте, возникла необходимость сделать тоже самое что и в этой теме https://www.cyberforum.ru/vb-net/thread948561.html только на QT ...

Чтение данных из файла и добавление их на форму
Здравствуйте. Нужно открыть текстовый файл, найти слово &quot;Дата&quot;, и цыфры, следующие за словом добавить в поле Едит. Пока могу только открыть...

Добавление данных на форму с текстового файла
Всем доброго времени суток, подскажите вот что, я хотел бы сделать вот так : есть текстовый файл с названиями и характеристиками авто. ...

51
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
15.06.2016, 21:18
для добавления в форму... вам тогда придётся свою форму пилить, потом её переводить в FormData, и это если на сервер

а если вам хочется чтобы запустился почтовый клиент и к письму прикрепился этот файл, то тут я уже помочь не могу, вот сказать кому письмо, запросто. прикреплять к письму что-то, это я не знаю
0
1 / 1 / 0
Регистрация: 25.06.2014
Сообщений: 151
15.06.2016, 21:46  [ТС]
BANO, Можете помочь распилить форму))? этот вариант подходит , потому что клиент сможет отправить мне этот файл
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
15.06.2016, 22:11
andrett, у вас подключена jquery?
0
1 / 1 / 0
Регистрация: 25.06.2014
Сообщений: 151
15.06.2016, 22:14  [ТС]
BANO, Да , конечно.. у меня все включено) jquery-2.2.4.min.js и
js/jquery-1.12.4.min.js
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
15.06.2016, 22:20
andrett, они не могут быть одновременно включены...

Добавлено через 1 минуту
ладно, давайте html формы
0
1 / 1 / 0
Регистрация: 25.06.2014
Сообщений: 151
15.06.2016, 22:39  [ТС]
BANO,
HTML5
1
2
3
4
5
6
7
8
9
10
 
<form action= "post.php" method= "POST"> 
 
<p>Имя: </p><p> <input type= "text" name= "name"> </p> 
 
<p>E-mail: </p><p> <input type= "text" name= "email"></p> 
 
<p>Сообщение: </p><p> <textarea rows= "10" cols= "45" name= "message"></textarea></p> 
 
<input type= "submit" value= "Отправить">
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
15.06.2016, 22:44
JavaScript
1
2
3
4
5
6
var From = new FormData;
$("Selector Of From").find("input[name]").each(function(){
    Form.append(this.name, this.value);
});
 
From.append("file", base64(format(template, ctx)))
главное на серваке расшифровать
1
1 / 1 / 0
Регистрация: 25.06.2014
Сообщений: 151
15.06.2016, 23:27  [ТС]
BANO, а до расшифровки что то должно измениться при подключении вашего скрипта ? мне нужно еще создавать поле для мультизагрузки вложений?
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
15.06.2016, 23:58
andrett, нет же, теперь в Form хранится форма, в ней в поле file лежит base64 версия вашего файла
0
1 / 1 / 0
Регистрация: 25.06.2014
Сообщений: 151
16.06.2016, 00:08  [ТС]
BANO, а визуально отобразить это в форме возможно? или только потом увижу после отправки в теле письма?
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<form action= "post.php" method= "POST"> 
 
<p>Имя: </p><p> <input type= "text" name= "name"> </p> 
 
<p>E-mail: </p><p> <input type= "text" name= "email"></p> 
 
<p>Сообщение: </p><p> <textarea rows= "10" cols= "45" name= "message"></textarea></p> 
 
<script type="text/javascript">
var From = new FormData;
$("Selector Of From").find("input[name]").each(function(){
    Form.append(this.name, this.value);
});
From.append("file", base64(format(template, ctx)))
</script>
 
<input type= "submit" value= "Отправить">
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
16.06.2016, 00:09
andrett, отправлять теперь можно только Form через ajax

и что вы хотите визуально отобразить?
0
1 / 1 / 0
Регистрация: 25.06.2014
Сообщений: 151
16.06.2016, 00:13  [ТС]
BANO, думал, что это будет визуально видно, как файл добавлен в форму и будет отправлен, как например в мультизагрузке..
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
16.06.2016, 00:47
andrett, вы можете сделать свою визуализацию этого процесса
0
1 / 1 / 0
Регистрация: 25.06.2014
Сообщений: 151
16.06.2016, 09:51  [ТС]
Добавлено через 2 минуты
BANO, а здесь случайно не ошибка , там где Form.append , а надо From.append
JavaScript
1
2
3
4
5
6
var From = new FormData;
$("Selector Of From").find("input[name]").each(function(){
    Form.append(this.name, this.value);
});
 
From.append("file", base64(format(template, ctx)))
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
16.06.2016, 11:30
andrett, это у меня под вечер пальцы уже заплетаются в узлы
вот так будет правильно
JavaScript
1
2
3
4
5
6
var Form = new FormData;
$("Selector Of Form").find("input[name]").each(function(){
    Form.append(this.name, this.value);
});
 
Form.append("file", base64(format(template, ctx)))
1
1 / 1 / 0
Регистрация: 25.06.2014
Сообщений: 151
16.06.2016, 11:33  [ТС]
BANO, Подскажите , что такое
JavaScript
1
("Selector Of Form")
?
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
16.06.2016, 11:47
andrett, это css селектор вашей формы
1
1 / 1 / 0
Регистрация: 25.06.2014
Сообщений: 151
18.06.2016, 18:07  [ТС]
BANO, подскажи пожалуйста родной, вот подобрал скрипт для отправки формы с вложением ... как в него правильно вмонтировать твой код , вот то, что я сделал правильно?
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
// Как только страничка загрузилась 
    window.onload = function () { 
        // проверяем поддерживает ли браузер FormData 
            if(!window.FormData) {
                /* * если не поддерживает, то выводим 
                * то выводим предупреждение вместо формы */
                var div = ge('content');
                div.innerHTML = "Ваш браузер не поддерживает объект FormData";
                div.className = 'notSupport'; 
            }
    }
 
 
$(document).ready(function(){
    // =validation
    var errorTxt = 'Ошибка отправки';
    $("#sendform").validate({
        submitHandler: function(form){
            var Form = new FormData;
                        $("Selector Of Form").find("input[name]").each(function(){
                        Form.append(this.name, this.value);
                        });
 
                        Form.append("file", base64(format(template, ctx)))
            
            var form = document.forms.sendform,
                formData = new FormData(form),
                xhr = new XMLHttpRequest();
 
            xhr.open("POST", "/send.php");
            
            xhr.onreadystatechange = function() {
                if (xhr.readyState == 4) {
                    if(xhr.status == 200) {
                        $("#sendform").html('<p class="thank">Данные отправлены!<p>');
                    }
                }
            };
            xhr.send(formData);
        }
    }); 
})
 
function sendSuccess(callback){
    $(callback).find("form fieldset").html(thank);
}
Добавлено через 7 минут
и еше немного форма изменилась
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<form action="#" method="post" id="sendform" enctype="multipart/form-data" class="form-horizontal" role="form" >
  
    <h4>Отправить расчет</h4>
    <div class="form-group">
      
         <label class="col-sm-2 control-label">Имя*:</label>
         <div class="col-sm-10">
         <input name="name" class="form-control" value="" size="40" type="text" class="required" />
           </div>
       </div>
   <div class="form-group">
      <label class="col-sm-2 control-label">Контактный номер*:</label>
      <div class="col-sm-10">
      <input name="tel" class="form-control" value="" size="40" class="required" type="tel" />
       </div>
 </div>
     <div class="form-group">
     <label class="col-sm-2 control-label">E-mail:</label>
     <div class="col-sm-10">
     <input name="email" class="form-control" id="exampleInputEmail1" value="" size="40" type="email" />
     </div>
 </div>
     <div class="form-group">
      <label class="col-sm-2 control-label">Описание заказа:</label>
      <div class="col-sm-10">
      <textarea name="message" class="form-control" cols="40" rows="10" /> </textarea>
    </div>
</div>
   <div class="form-group">
      <label class="col-sm-2 control-label">Прикрепить файл:</label>
      <div class="col-sm-10">  
      <input name="file"  value="1" size="40" type="file" />
      </div>
 </div>
     <div class="form-group">
    <div class="col-sm-offset-2 col-sm-10">   
    <input value="Отправить"  name="sendMail" type="submit" class="button green medium"/>
    <a href="javascript:void(0);" class="button orange medium" onclick="tableToExcel('tbl', 'W3C Example Table')">Сохранить расчет в Excel</a>
 </div>
 </div>
</form>
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
18.06.2016, 18:36
andrett, ну... почти, вы были очень близко
на самом деле у вас там очень много непонятной мешанины, но это не так важно, как говорится, зачем трогать если работает

я вам покажу как это сделать с помощью jq
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$("#sendform").validate({
    submitHandler: function(form) {
        var form = new FormData($("#sendform")[0]);
        form.append("file", base64(format(template, ctx)))
        $.ajax({
            type: "POST",
            processData: false,
            contentType: false,
            url: "/send.php",
            data: form
        }).done(function(data) {
            $("#sendform").html('<p class="thank">Данные отправлены!<p>');
        }).feil(function() {
            // тут обрабатываем ошибку
        });
    }
});
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.06.2016, 18:36
Помогаю со студенческими работами здесь

Добавление в форму только имени файла без адреса.
Подскажите пж как сделать что бы этот скрипт вставлял в форму только имя файла без адреса? $('#file').change(function () { ...

[C++ Builder XE7] Добавление анимации на форму из готового .avi файла
Здравствуйте! Имеется тема курсовой на игровую тематику. Среда разработки C++ Builder XE7 В игре есть персонаж, состояние персонажа будет...

Сохранение файла сгенерированного на сервере (JAVA+Servlet)
Доброго времени суток. Создаю xls файл в servlet и пытаюсь сохранить его во временную папку для скачивания. Делаю так: try...

Содержимое сгенерированного числового файла INPUT проинтерпретировать как последовательность квадратных матриц размера 2X2 и записать их в файлы 2
Содержимое сгенерированного числового файла INPUT проинтерпретировать как последовательность квадратных матриц размера 2X2 и записать...

Добавление на форму
Добрый день , вопрос такой есть несколько классов, первый вызов других классов. import javax.swing.JFrame; import...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru