Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.06.2016, 20:01
Новичок на форуме
Отправить личное сообщение для Valeraertert Посмотреть профиль Найти все сообщения от Valeraertert
 
Регистрация: 28.05.2016
Сообщений: 2

Добавление конвертируемого файла в форму PHP
Путем длительного поиска и усилий удалось найти решение как сохранить таблицу HTML. Удалось это реализовать с помощью скрипта, который сохраняет таблицу в exel и все вроде ок, но .. все никак не удается найти рабочее решение, чтобы при нажатии на кнопку, активировалось действие скрипта 1(который выполняет функцию конвертации таблицы HTML в Exel), при этом конвертируемый файл Exel автоматически добавился в форму для отправки!
Для работы есть все необходимое форма, PHP обработчик, JS конвертер и JS отправка формы с вложением.. все полностью рабочее.. вот только связать не получается форма+конвертируемый файл..

Помогите пожалуйста.

Вот код:
скрипт 1 конвертер таблицы HTML
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))
  }
})()


форма
<form action="#" method="post" id="sendform" enctype="multipart/form-data"  >
      <input name="file"  value="1" size="40" type="file" />
      <input value="Отправить"  name="sendMail" type="submit" />

</form>

скрипт 2 для отправки формы
// Как только страничка загрузилась 
	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 = 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);


и еще PHP который работает в связке
<?php
$to = 'barselonaua@gmail.com';

if ( isset( $_POST['sendMail'] ) ) {
  $name  = substr( $_POST['name'], 0, 64 );
  $tel = substr( $_POST['tel'], 0, 64 );
  $email   = substr( $_POST['email'], 0, 64 );
  $message = substr( $_POST['message'], 0, 250 );
 

  if ( !empty( $_FILES['file']['tmp_name'] ) and $_FILES['file']['error'] == 0 ) {
    $filepath = $_FILES['file']['tmp_name'];
    $filename = $_FILES['file']['name'];
  } else {
    $filepath = '';
    $filename = '';
  }
 
  $body = "Имя:\r\n".$name."\r\n\r\n";
  $body .= "Контактный номер:\r\n".$tel."\r\n\r\n";
  $body .= "E-mail:\r\n".$email."\r\n\r\n";
  $body .= "Описание заказа:\r\n".$message;
 
  send_mail($to, $body, $email, $filepath, $filename);

}

Последний раз редактировалось Valeraertert, 18.06.2016 в 21:41.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подгрузить несколько значения с php файла в разные места документа serdef Элементы интерфейса 2 30.07.2014 23:48
Cron, запуск php файла Sub-zerro Серверные языки и технологии 2 21.02.2014 20:37
javascript в конце php файла обработчика borodadada Events/DOM/Window 3 11.05.2013 21:37
Сохранение и архивация файла на сервер PHP zlodeeev Серверные языки и технологии 1 12.07.2012 18:02
Как вывести содержимое PHP файла с помощью JS? pavdin Серверные языки и технологии 6 22.12.2010 14:16