Тэг ‘js’

И снова бланки - работа с word средствами javascript и php

В очередной раз стала актуальной задача с подготовкой бланков. Однако, способ с бланком в формате rtf не подходит - файл .doc весит ~2 Мб, файл же rtf ~ 34 Мб. Видимо, зависит от хранения рисунков…

Работать с COM-объектом Word можно непосредственно из PHP:

// Код PHP
$word=new COM("Word.application") or die("Couldn't start Word!");
//после создания объект невидимый
//сделаем его видимым и активизируем (разумеется, для работы на сервере это необязательно)
$word->visible =1;
$word->Activate();
//Создать документ по шаблону:
$word->Documents->Add("c:\\template.dot");
// действия - найти-заменить и т.д. Описаны в документации по VisualBasic for Application - в справке MS Word (по умолчанию не устанавливается)
$word->ActiveDocument->SaveAs("C:\\".$fname);
$word->Quit();

Однако, подобный способ подходит только для Windows-серверов.

Еще один вариант - работа с COM-объектом на стороне клиента через Active-X при помощи JavaScript:


><script language="javascript">
// Создание объекта MS Word:
word = new ActiveXObject ("Word.Application");
// Создание документа и установка параметров страницы:
with (word) {
Documents.Open('c:\\0.doc');
ActiveDocument.Label1.Caption = < ?=$sum?>;
ActiveDocument.SaveAs ('c:\\1.doc');
Quit (); // завершает работу MS Word
}
</script>

Предварительно следует сохранить документ-шаблон на диск C:\ с именем 0.doc.
В шаблоне - создать “Label”-ы и расположить их в соответствии с нужным расположением текста.
С учетом специфики задачи - получаем еще один небольшой выйгрыш - “основной” файл не качается с сервера.
Технология, думаю, понятна. Вариации - насколько фантазии хватит.

ps. Не забудьте поставить разрешения в свойствах обозревателя.

( Свойства обозревателя - безопасность - Выбираем “Надежные узлы”. После чего, нажимаем “Другой..” - и устанавливаем все переключатели, где упоминается ActiveX в “Разрешено”.)

А в Надежные узлы следует добавить “Наш” сайт - где формируются бланки.

Опубликовано Март 18, 2009 | автор: levik  |  Нет комментариев »

javascript как получить атрибут value элемента input типа radio

Имеем несколько элементов input типа radio (знакомые с формами Windows иногда кличут их radiobutton). Требуется получить значение value “выбранного” элемента.

<input type="radio" value="value" />
<input type="radio" value="value2" />
<script type="text/javascript" language="javascript">
input = document.getElementsByTagName('input');
for(i=0;i<(input).length;i++){
if(input[i].getAttribute('type')=='radio'&&input[i].checked){
alert(input[i].getAttribute('value'));
}
}
</script>

Без перебора элементов совсем не обойтись. Однако, можно сократить количество элементов для перебора в пределах формы:

<script language="JavaScript" type="text/javascript">
function showStatus(f) {
var s = "";
for (var i=0; i<f.elements["radiobutton"].length; i++) {
var btn = f.elements["radiobutton"][i];s += btn.value + ": " + btn.checked + "\n";
}
window.alert(s);
}
</script>
<form>
<input type="radio" name="radiobutton" value="First" />1
<input type="radio" name="radiobutton" value="Second" />2
<input type="radio" name="radiobutton" value="Third" />3
<input type="button" value="Show status" onclick="showStatus(this.form);" />
</form>

Опубликовано Июль 17, 2008 | автор: levik  |  Комментарий (1) »

Javascript - загрузка скрытых картинок - preload images

Загрузка изображений при помощи javascript - часто используется для смены картинок, чтобы после загрузки основной части страницы не “расстраивать” пользователя временнОй задержкой, требующейся для загрузки картинки.
<script type="text/javascript" language="javascript">
//загрузка изображений (preload images)
var pictures = new Array('pic1.jpg','pic2.jpg','pic3.jpg');
for (i=1;i<pictures.length; i++) {
t = new Image();
t.src = pictures[i];
}
</script>

Опубликовано Июнь 13, 2008 | автор: levik  |  Нет комментариев »

Прячем e-mail от спам-роботов

Ссылки вида mailto: становятся объектом поиска компаний, занимающихся массовых рассылок. Естественно, ищут они не вручную, а при помощи программ или скриптов. Чаще всего алгоритм поиска прост - ищем подстроку вида mailto:__EMAIL__ и выделяем из неё часть после двоеточия.

Способы обхода: Читать целиком »

Опубликовано Октябрь 10, 2007 | автор: levik  |  Комментарии (3) »