Help!!! @ DeForum.ru
DeДверь  
Логин:  
Пароль:  
  Автологин  
   
Разместить рекламу
Письмо админу
Правила | FAQ | *Поиск | Наша команда | Регистрация | Вход
 
 
 Страница 1 из 1 [ Сообщений: 10 ] 
*   Список форумов / Начинка и техника / Программирование для WWW » ответить » создать топик « | »
Автор Сообщение
ed1313
новый человек
0
Сообщения: 5
Зарегистрирован: 21.01.02
Заголовок сообщения: Help!!!
Сообщение Добавлено: 21 Январь 2002, 17:03:00 
Народ, помогите справиться с проблемой... Есть форма в отдельном окошке, которая рисуется джаваскриптом, через метод open с помощью метода write... Данные из этой формы отправляются е-мылом клиента, через ACTION="mailto:"… Аттрибут ENCTYPE="text/plain" установлен... При этом русский текст перекодируется аж два раза сначала WIN->DOS, затем WIN->ISO и приходит, само собой, абсолютно искореженным... Если отправлять из точно такой же формы, но загруженной в браузер не через скрипт (скопировав код из окна и сохранив его), то ничего подобного не происходит... Объясните, где копать и как победить этот баг?
olegf Муж.
участник
3
Сообщения: 1054
Зарегистрирован: 01.11.01
Откуда: Msk
Заголовок сообщения: Help!!!
Сообщение Добавлено: 21 Январь 2002, 17:11:00 
вот здесь как раз и надо использовать следующий тег:

<meta http-equiv="content-type" content="text/html;charset=windows-1251">

тег нужно вставлять в открываемом окошке.
ed1313
новый человек
0
Сообщения: 5
Зарегистрирован: 21.01.02
Заголовок сообщения: Help!!!
Сообщение Добавлено: 21 Январь 2002, 17:36:00 
Этот-то тег в открываемом окошке как раз имеется... В заголовке... Или его нужно внутри формы ставить?
olegf Муж.
участник
3
Сообщения: 1054
Зарегистрирован: 01.11.01
Откуда: Msk
Заголовок сообщения: Help!!!
Сообщение Добавлено: 21 Январь 2002, 17:41:00 
тогда попробуй его убрать. [img]images/smiles/icon_smile.gif[/img] [img]images/smiles/icon_smile.gif[/img]

протестируй скрипт в разных броузерах.

пришли исходник страницы которая открывает окно.
Long Муж.
SubAdmin
Теоретик
17
Сообщения: 4362
Зарегистрирован: 25.04.01
Откуда: Москва
Заголовок сообщения: Help!!!
Сообщение Добавлено: 21 Январь 2002, 18:00:00 
Да, собственно - код в студию [img]images/smiles/icon_wink.gif[/img]
ed1313
новый человек
0
Сообщения: 5
Зарегистрирован: 21.01.02
Заголовок сообщения: Help!!!
Сообщение Добавлено: 21 Январь 2002, 18:16:00 
Нет проблем... Вот код:
===========Начали код=============
<html>
<head>
<title>Построение окна</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<script language="JavaScript">
function browse(field1,field2,field3,field4) {
// Создаем новое окно 600х300 без панелей навигации
var outputwin=open('','Blank','toolbar=0, width=600,height=500');
var trigger=field4
// Объявляем переменные

with (outputwin.document) {
// Создаем заголовок нового документа
write("<"); write("html"); write(">"); write("<"); write("head"); writeln(">");
write("<"); write("title>Бланк заказа<"); writeln("/title>");
write('<meta http-equiv="Content-Type'); write('" content='); write('"text/html; charset=Windows-1251'); writeln('">');
writeln('<SCRIPT LANGUAGE="JavaScript">');
writeln('function clear_field(field) {');
==============Откусил==============
//Сама функция обрезана, она рояли не играет
==============Продолжение==========
write(' <'); write("/SCRIPT>");
write(' <link rel="'); write('stylesheet" '); write('href="../Table1.css'); write('" type='); write('"text/css'); writeln('">');
writeln(' <script language="JavaScript">');
writeln(' function MM_reloadPage(init) { ');
write(' if (init==true) with (navigator) {if ((appName=="Netscape'); writeln('")&&(parseInt(appVersion)==4)) {');
writeln(' document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}');
writeln(' else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload(); }');
writeln(' MM_reloadPage(true);');
write(" <"); writeln("/script>");
write("<"); write("/"); write("head"); writeln(">");
write("<"); write("body "); write('bgcolor="gainsboro">');
write('<'); writeln('table border="1" width="549" cellspacing="2" cellpadding="2" name="table1">');
write('<'); write('tr> <'); write('td align="center" class="Table1" valign="top"><'); write('font size="+2">Раздел: "'); write(field3); writeln('"</font></td> </tr>');
write('<'); write('tr> <'); write('td align="center" class="Table1" valign="top"><'); write('font size="+1"> Бланк заказа программы '); write(field1); writeln('</font></td> </tr>');
write('<'); write('tr> <'); write('td align="center" class="Table1" valign="top"> <'); write('br> <'); writeln('br>');
write('<'); write('FORM NAME="jsform" METHOD="post" ENCTYPE="text/plain" ACTION="mailto:telerus@mail.ru?subject=Заказ на передачу" onSubmit="return validate_form('); write(')"'); write('> <'); writeln('p>');
write('<'); write('INPUT NAME="delivery" TYPE="hidden" VALUE='); write(field1); writeln('>');
write('<'); write('INPUT NAME="name" TYPE="text" VALUE="Ваше имя" SIZE="30" onFocus="clear_field('); write('this)" onBlur="check_field('); write('this)"> <'); writeln('/p> ');
write('<'); write('p> <'); write('INPUT NAME="email" TYPE="text" VALUE="Введите ваш e-mail адрес" SIZE="30" onFocus="clear_field(');write('this)" onBlur="check_field('); write('this)"> <'); writeln('/p>');
write('<'); write('p> <'); write('input type="text" name="adress" value="Введите почтовый адрес" size="50" onFocus="clear_field('); write('this)" onBlur="check_field('); write('this)"> <'); writeln('/p>');
if (trigger=="0" ) {
write('<'); write('p>Отсылать: <'); writeln('select name="period">');
write('<'); write('option value="week" selected>по умолчанию<'); writeln('/option>');
write('<'); write('option value="month">ежемесячно<'); write('/option> <'); write('/select> <'); writeln('/p>')
}
write('<'); write('p>Подписка на: <'); writeln('select name="number" >');
write('<'); write('option value="1" selected>1 мес.<'); writeln('/option>');
write('<'); write('option value="2">3 мес.<'); writeln('/option>');
write('<'); write('option value="3">6 мес.<'); writeln('/option>');
write('<'); write('option value="4">12 мес.<'); write('/option>'); write('</select'); write('> <'); writeln('/p>');
write('<'); write('p> <'); write('input type="text" name="taxe" value="$$" size="45" onFocus="taxe_field('); write(')" onBlur="taxe_field('); write(')" onSelect="taxe_field('); write(')"> <'); writeln('/p>');
write('<'); write('p> <'); write('input type="button" name="Submit2" value="Рассчитать стоимость подписки" onClick="taxe_field('); write(')"> <'); writeln('/p>');
write('<'); write('p> <'); writeln('INPUT TYPE="submit" VALUE="Отправить">');
write('<'); writeln('INPUT TYPE="reset" VALUE="Очистить">');
write('<'); write('input type="button" name="Submit" value="Вернуться" onClick=window.close('); write(')> <'); writeln('/p>');
write('<'); write('p> <'); write('/p> <'); writeln('/FORM>');
write('<'); write('/td> <'); write('/tr> <'); writeln('/table>');
writeln('</div>');
writeln('</BODY>');
write('</'); write('HTML'); writeln('>');
================Закончили код=============
Если повырезать все "write" и запустить код - все работает как положено, кодировки не корежатся...
olegf Муж.
участник
3
Сообщения: 1054
Зарегистрирован: 01.11.01
Откуда: Msk
Заголовок сообщения: Help!!!
Сообщение Добавлено: 22 Январь 2002, 10:57:00 
ты пришли не куски, а целиком все что надо для демонстрации твоей коллизии. иль в инете выложь где-нить.
ed1313
новый человек
0
Сообщения: 5
Зарегистрирован: 21.01.02
Заголовок сообщения: Help!!!
Сообщение Добавлено: 22 Январь 2002, 14:59:00 
Ок... Да простит меня модератор...
===========Начали код===============
<html>
<head>
<title>Построение окна</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<script language="JavaScript">
function browse(field1,field2,field3) {
// Создаем новое окно 600х300 без панелей навигации
var outputwin=open('','Blank','toolbar=0, width=600,height=400');
// Объявляем переменные

with (outputwin.document) {
// Создаем заголовок нового документа
write("<"); write("html"); write(">"); write("<"); write("head"); writeln(">");
write("<"); write("title>Бланк заказа<"); writeln("/title>");
write('<meta http-equiv="Content-Type'); write('" content='); write('"text/html; charset=windows-1251'); writeln('">');
writeln('<SCRIPT LANGUAGE="JavaScript">');
writeln('function clear_field(field) {');
writeln('if (field.value==field.defaultValue) {');
write("field.value='"); writeln("' } }");
writeln(' function taxe_field() {');
write('var num1= Number (document.jsform.number.value) + Number ("'); write(field2); writeln('")');
writeln(' switch (num1) {');
writeln('case 1: document.jsform.taxe.value="6,5 $ + 15$ отправка = 21,5$"; break; ');
writeln('case 2: document.jsform.taxe.value="6,5 $ * 3 + 15$ *3 отправки - 5% = 61,28$"; break; ');
writeln('case 3: document.jsform.taxe.value="6,5 $ *6 + 15$ *6 отправок - 10% = 116,1$"; break; ');
writeln('case 4: document.jsform.taxe.value="6,5 $ *12 + 15*12 отправок -15% = 219,3$"; break; ');
writeln('case 5: document.jsform.taxe.value="7 $ + 15$ отправка = 22$"; break; ');
writeln('case 6: document.jsform.taxe.value="7 $ * 3 + 15$ *3 отправки - 5% = 62,7$"; break;');
writeln('case 7: document.jsform.taxe.value="7 $ *6 + 15$ *6 отправок - 10% = 118,8$"; break;');
writeln('case 8: document.jsform.taxe.value="7 $ *12 + 15*12 отправок -15% = 224,4$"; break;');
writeln('case 9: document.jsform.taxe.value="9,5 $ + 15$ отправка = 24,5$"; break; ');
writeln('case 10: document.jsform.taxe.value="9,5 $ * 3 + 15$ *3 отправки - 5% = 69,83$"; break; ');
writeln('case 11: document.jsform.taxe.value="9,5 $ *6 + 15$ *6 отправок - 10% = 132,3$"; break; ');
writeln('case 12: document.jsform.taxe.value="9,5 $ *12 + 15*12 отправок -15% = 249,9$"; break; ');
writeln('case 13: document.jsform.taxe.value="12 $ + 15$ отправка = 27$"; break;');
writeln('case 14: document.jsform.taxe.value="12 $ * 3 + 15$ *3 отправки - 5% = 78,75$"; break;');
writeln('case 15: document.jsform.taxe.value="12 $ *6 + 15$ *6 отправок - 10% = 145,8$"; break;');
writeln('case 16: document.jsform.taxe.value="12 $ *12 + 15*12 отправок -15% = 275,4$"; break;');
writeln('case 17: document.jsform.taxe.value="Пока нету"; break;');
writeln('case 18: document.jsform.taxe.value="Пока нету"; break;');
writeln('case 19: document.jsform.taxe.value="Пока нету"; break; ');
writeln('case 20: document.jsform.taxe.value="Пока нету"; break; ');
writeln(' case 21: document.jsform.taxe.value="Пока нету"; break;');
writeln('case 22: document.jsform.taxe.value="Пока нету"; break;');
writeln('case 23: document.jsform.taxe.value="Пока нету"; break; ');
writeln('case 24: document.jsform.taxe.value="Пока нету"; break; }');
writeln(' }');
writeln(' function check_field(field) {');
write(" if (field.value=="); write("'"); write("'"); write("|| field.value=="); write("' "); writeln("') {");
writeln('field.value=field.defaultValue } ');
writeln('} ');
writeln('function validate_form() { ');
write(' if (document.jsform.name.value==document.jsform.name.defaultValue || document.jsform.name.value.indexOf('); write("' "); writeln("',0)==0) {");
write(' alert("'); writeln('Вы не ввели имя.")');
writeln(' document.jsform.name.select()');
writeln(' document.jsform.name.focus()');
writeln('return false } ');
writeln(' if (document.jsform.email.value==document.jsform.email.defaultValue) {');
write(' alert("'); writeln('Вы не ввели адрес электронной почты.")');
writeln(' document.jsform.email.select()');
writeln(' document.jsform.email.focus()');
writeln(' return false }');
writeln(' if (document.jsform.adress.value==document.jsform.adress.defaultValue) {');
write(' alert("'); writeln('Вы не ввели почтовый адрес.")');
writeln(' document.jsform.adress.select()');
writeln(' document.jsform.adress.focus() ');
writeln('return false } ');
write(' if (document.jsform.email.value.indexOf('); write("'@"); write("',0)==-1 || document.jsform.email.value.indexOf("); write("'."); writeln("',0)==-1) {");
write(' alert("'); writeln('Такого адреса нет.")');
writeln(' document.jsform.email.select()');
writeln(' document.jsform.email.focus()');
writeln(' return false }');
writeln(' else {');
write(' if(confirm("'); writeln('Нажмите OK, чтобы отослать почту.")) {');
writeln(' return true }');
writeln(' else {');
writeln(' return false } } } ');
write(' <'); write("/SCRIPT>");
write(' <link rel="'); write('stylesheet" '); write('href="../Table1.css'); write('" type='); write('"text/css'); writeln('">');
writeln(' <script language="JavaScript">');
writeln(' function MM_reloadPage(init) { ');
write(' if (init==true) with (navigator) {if ((appName=="Netscape'); writeln('")&&(parseInt(appVersion)==4)) {');
writeln(' document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}');
writeln(' else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload(); }');
writeln(' MM_reloadPage(true);');
write(" <"); writeln("/script>");
write("<"); write("/"); write("head"); writeln(">");
write("<"); write("body "); write('bgcolor="'); write('#CCCCCC"'); writeln('>');
write('<'); write('div '); write('align="'); write('center"'); writeln('>');
write('<'); write('table border="'); write('1" cellspacing='); write('"2'); write('" cellpadding='); write('"2'); writeln('">');
write('<tr'); write('> <td align="'); write('center" class='); write('"Table1'); write('" valign='); write('"top'); write('" nowrap> <'); write('font size="+2'); write('">Раздел: "'); write(field3); write('"<'); write('/font><'); writeln('br>');
write('<font size="+1'); write('">Бланк заказа программы <'); write('font size="+1'); write('">'); write(field1); write('<'); write('/font><'); write('/font><br'); writeln('>');
write(' <FORM NAME="'); write('jsform" METHOD='); write('"post'); write('" ENCTYPE='); write('"text/plain'); write('" ACTION='); write('"mailto:telerus@mail.ru?subject=Заказ на передачу'); write('" onSubmit='); write('"return validate_form()'); write('"><'); writeln('p>');
write('<INPUT NAME="delivery'); write('" TYPE='); write('"hidden'); write('" VALUE='); write(field1); writeln('>');
write(' <INPUT NAME="'); write('name" TYPE='); write('"text'); write('" VALUE='); write('"Ваше имя'); write('" SIZE='); write('"30'); write('" onFocus='); write('"clear_field(this)'); write('" onBlur='); write('"check_field(this)'); writeln('"></p><p>');
write('<INPUT NAME="'); write('email" TYPE='); write(' '); write('"text'); write('" VALUE='); write('"Введите ваш e-mail адрес');write('" SIZE='); write('"30'); write('" onFocus='); write('"clear_field(this)'); write('" onBlur='); write('"check_field(this)'); writeln('"></p><p>');
write('<input type="'); write('text" name='); write('"adress'); write('" value='); write('"Введите почтовый адрес'); write('" size='); write('"050'); write('" onFocus='); write('"clear_field(this)'); write('" onBlur='); write('"check_field(this)'); writeln('"></p>');
write('<p>Подписка на: <select name="'); writeln('number" >');
write('<option value="'); write('1"'); write('selected>'); write('1 мес.<'); writeln('/option>');
write('<option value="'); writeln('2">3 мес.</option>');
write('<option value="'); writeln('3">6 мес.</option>');
write(' <option value="4'); writeln('">12 мес.</option> </select> </p>');
write('<p align="center'); write('">Стоимость подписки: <input type='); write('"text'); write('" name='); write('"taxe'); write('" size='); write('"45'); write('" value='); write('"$$'); write('" readonly > </p> <p align='); write('"center'); writeln('">');
write('<input type="'); write('button" name='); write('"taxe1'); write('" value='); write('"Рассчитать стоимость подписки'); write('" onClick='); write('"taxe_field()'); writeln('"> </p> <p>');
write(' <INPUT TYPE="'); write('submit" VALUE='); write('"Отправить'); writeln('">');
write('<INPUT TYPE="reset'); write('" VALUE='); write('"Очистить'); writeln('">');
write('<input type="button'); write('" name='); write('"Submit'); write('" value='); write('"Закрыть'); writeln('" onClick=window.close()> </p> </FORM> </td> </tr> </table>');
writeln('</div>');
writeln('</BODY>');
write('</'); write('HTML'); writeln('>');
}
} //конец функции browse
</script>
</head>
<body bgcolor="gainsboro">
<form name="indicator" method="post" action="">
<input type="button" name="Submit" value="Проба" onClick=browse(document.indicator.index1.value,document.indicator.index2.value,document.indicator.section.value)>
<input type="hidden" name="index1" value=""40 лет шутя. КВН. Фрагменты биографии"">
<input type="hidden" name="index2" value="12">
<input type="hidden" name="section" value="Криминальные">
</form>

</body>
</html>
===============Закончили код============
Суть следующая: данные из скрытих полей должны передаться в форму, которая откроется в окошке и отправиться, вместе с тем, что внесет пользователь в поля формы, е-мылом мне...
olegf Муж.
участник
3
Сообщения: 1054
Зарегистрирован: 01.11.01
Откуда: Msk
Заголовок сообщения: Help!!!
Сообщение Добавлено: 23 Январь 2002, 01:45:00 
вобщем так и не разобрался где собака порылась. может это софтовые глюки, хотя маловероятно.

итог такой. на двух машинах, где почтовый клиент был the bat - сей скрипт наглухо вешал и explorer и the bat разом.

на машине с аутлуком выдавалась куча предупреждений, после чего письмо уходило. проблема с кодировками имелась.

мой тебе совет, брось эту затею, и отправляй данные на цгишник, который и будет уже высылать мыло. так и для юзера менее напряжно, да и ты всегда все отследить сможешь.
ed1313
новый человек
0
Сообщения: 5
Зарегистрирован: 21.01.02
Заголовок сообщения: Help!!!
Сообщение Добавлено: 23 Январь 2002, 03:00:00 
Если бы я еще и CGI знал, так бы и сделал... [img]images/smiles/icon_redface.gif[/img] [img]weep.gif[/img] Безграмотный я, головы только на джаваскрипт и хватило... А откуда ноги растут, я разобрался, только вот что с этим делать - ума не приложу... Весь баг из-за того, что порожденное окно упорно грузится в юникоде и больше никак, что бы не было прописано в скрипте...
*   Список форумов / Начинка и техника / Программирование для WWW « | » » ответить » создать топик
 Страница 1 из 1 [ Сообщений: 10 ] 
Показать сообщения за:   Поле сортировки  
Найти:
Перейти:  
Уровень доступа: Вы не можете начинать темы. Вы не можете отвечать на сообщения. Вы не можете редактировать свои сообщения. Вы не можете удалять свои сообщения. Вы не можете добавлять вложения.
cron


ООО ДеФорум
При использовании материалов сайта ссылка на DeForum.ru — обязательна.
Проект Павла Батурина ©2001-2077; // Powered by phpBB © 2013 phpBB Group
Rambler's Top100