[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите пожалуйста с формой для сайта
Ilgiz
Помогите, пожалуйста. Я в php мало чего понимаю, быть может и написал не туда, за что извиняюсь. Подскажите,пожалуйста, как сделать форму, в которую нужно ввести данные, после нажать кнопочку и введенные данные вставлялись в подготовленный документ .doc.

Я попытался воспользоваться вот этой статьей: http://habrahabr.ru/post/119551/
Сайт у меня на Joomla. Zend стоит и soap включен. Но я не понимаю, куда нужно вставлять вот это вот и как это можно использовать в форме на сайте :
// Создаём объект для работы с сервисом и передаём свой логин и пароль   
$livDoc = new Zend_Service_LiveDocx_MailMerge(array(
'username' => 'yourusername',
'password' => 'yourpassword'
));

// Передаём значения для наших mergeFields в Word шаблоне
$livDoc->assign('orderNum','Номер заказа');
$livDoc->assign('orderDay',date('d', 'Дата заказа'));

// Задаём путь к файлу шаблона и передаём его объекту
$documentPath = 'contract_bid_for_customer.doc';
$livDoc->setLocalTemplate($documentPath);

// заполняем документ с помощью сервиса
$livDoc->createDocument();
$doc = $livDoc->retrieveDocument('doc');

// отдаём готовый документ для скачки
header("Cache-Control: public");
header("Content-Description: File Transfer");
$fileName = "Документ.doc";
header("Content-Disposition: attachment; filename=$fileName");
header("Content-Type: application/msword");
header("Content-Transfer-Encoding: binary");
echo $doc;
die;


Если же вы предпочитаете plain php, то голодными тоже не останетесь.

Для работы понадобится включенный модуль soap, в большинстве случаев он включен по умолчанию, но проверьте как обстоит дело у вас:
phpinfo();
Раздел SOAP
Вы должны увидеть Soap client enabled и Soap server enabled.

// Выключаем WSDL кэширование
ini_set ('soap.wsdl_cache_enabled', 0);

// Выставляем временную зону
date_default_timezone_set('Europe/Moscow');

// Создаём экземпляр объекта Soap и передаём ему свои учетные данные
$soap = new SoapClient('https://api.livedocx.com/1.2/mailmerge.asmx?WSDL');
$soap->LogIn(
array(
'username' => 'yourusername',
'password' => 'yourpassword'
)
);


// Путь к файлу шаблона
$data = file_get_contents('contract_bid_for_customer.doc');

// Установка расширения файла .doc и параметров кодирования
$soap->SetLocalTemplate(
array(
'template' => base64_encode($data),
'format' => 'doc'
)
);


// Задаём значения переменным
$fieldValues = array (
'orderNum' => 'Номер заказа',
'orderDay' => 'Дата заказа'
);

// Эта хитрая функция преобразует массив c переменными в то что понимает SOAP
function assocArrayToArrayOfArrayOfString ($assoc)
{
$arrayKeys = array_keys($assoc);
$arrayValues = array_values($assoc);
return array ($arrayKeys, $arrayValues);
}

// Передаём переменные в наш LiveDocx объект
$soap->SetFieldValues(
array (
'fieldValues' => assocArrayToArrayOfArrayOfString($fieldValues)
)
);


// Формируем документ
$soap->CreateDocument();
$result = $soap->RetrieveDocument(
array(
'format' => 'doc'
)
);

$doc = base64_decode($result->RetrieveDocumentResult);

// Разрываем сессию с SOAP
$soap->LogOut();

// Отдаём вордовский файл
header("Cache-Control: public");
header("Content-Description: File Transfer");
$fileName = "Документ.doc";
header("Content-Disposition: attachment; filename=$fileName");
header("Content-Type: application/msword");
header("Content-Transfer-Encoding: binary");
echo $doc;
die;


Пожалуйста, помогите новичку
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.