Гость
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Как передать данные в новое окно? / 7 сообщений из 7, страница 1 из 1
12.12.2006, 13:40
    #34193172
shurik2533
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передать данные в новое окно?
Есть сайт на PHP движке. На одну страницу повешен калькулятор на JavaScript.
Надо сделать версию для печати результатов работы калькулятора, т.е. что бы при нажатии на кнопку результаты выводились в новом окне.
На движке есть функция "версия для печати",но она выводит в новом окне все тот же
калькулятор и надо считать заново
...
Рейтинг: 0 / 0
12.12.2006, 14:30
    #34193406
shurik2533
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передать данные в новое окно?
Попробую уточнить:
вот код:
Код: plaintext
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.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.
275.
276.
277.
278.
279.
280.
281.
282.
283.
284.
285.
286.
287.
288.
289.
290.
291.
292.
293.
294.
295.
296.
297.
298.
299.
300.
301.
302.
303.
304.
305.
306.
307.
308.
309.
310.
311.
312.
313.
314.
315.
316.
317.
318.
319.
320.
321.
322.
323.
324.
325.
326.
327.
328.
329.
330.
331.
332.
333.
334.
335.
336.
337.
338.
339.
340.
341.
342.
343.
344.
345.
346.
347.
348.
349.
350.
351.
352.
353.
354.
355.
356.
357.
358.
359.
360.
361.
362.
363.
364.
365.
366.
367.
368.
369.
370.
371.
372.
373.
374.
375.
376.
377.
378.
379.
380.
381.
382.
383.
384.
385.
386.
387.
388.
389.
390.
391.
<SCRIPT language="JavaScript">
function okr(x) {
var str= Math.round(x* 100 )/ 100 +'';
str = (str.charAt( 0 )=='.' ? '0'+str:str);
if (str.charAt(str.length- 3 )=='.') {
     str+='';
     }
else if (str.charAt(str.length- 2 )=='.') {
     str+='0';
     }
else str+='.00';
return str;
}



  
function Calc() {

  var form=document.Lis;
  if (!FrontPage_Form1_Validator(form)) return;
  if (form.PwNds.value<= 0 ) return;
  form.Nds.value = okr(form.PwNds.value* 18 / 118 );
  form.PwoNds.value = form.PwNds.value - form.Nds.value;


  var el = document.getElementById("tt1");
  var n=el.rows.length;
  var i= 0 ;
  for (i=n- 1 ; i> 0 ; i--) el.deleteRow(1);
  
  el2=el.insertRow( 1 );
  el3=el2.insertCell( 0 );
  	 el3.style.fontSize="12";
  el3.style.color="#ffffff";
  el3.innerHTML="авансовый платеж";
  c = form.PwoNds.value*form.LAvans.value/ 100 ;
  var sum1=c;
  
  e = c* 1 . 18 ;
  var sum3=e;
  
  d = e/( 1 +form.LNds.value/ 100 )*form.LNds.value/ 100 ;
  var sum2=d;

  f = (e-d-c)* 1 . 18 +e;
  var sum5=f;
  
  el3=el2.insertCell( 1 );
  el3.style.color="#ffffff";
  el3.style.fontSize="12";
  el3.align="center";
  el3.innerHTML=okr(e);
  el3=el2.insertCell( 2 );
  el3.style.color="#ffffff";
  el3.style.fontSize="12";
  el3.align="center";
  el3.innerHTML=okr(f);

  var lPrev = form.PwNds.value - c* 1 . 18 ;

  
//  	 el3=el2.insertCell( 6 );
//  	 el3.align="right";
//  	 el3.innerHTML=okr(lPrev);
  
  var cPrev = c;
  var coef= 0 ;

  for (i= 1 ; i<=form.LSrok.value; i++)
  {
     el2=el.insertRow(i+ 1 );
     el3=el2.insertCell( 0 );
 	 el3.style.fontSize="12";
	 el3.style.color="#ffffff";
     el3.innerHTML=i+"-й месяц";
     
     if (i== 1 ) 
     {
        c = (form.PwoNds.value - cPrev)/form.LSrok.value;
        coef =  30 / 365 ;
     }   
     else {
        c = cPrev;
        coef =  1 / 12 ;
     }   
     
     e = c* 1 . 18 +lPrev*form.LStav.value/ 100 *coef* 1 . 18 ;
	 d = e/( 1 +form.LNds.value/ 100 )*form.LNds.value/ 100 ;
	 f = (e-d-c)* 1 . 18 +e;
  	
  	   	 
  	 el3=el2.insertCell( 1 );
	 	 el3.style.fontSize="12";
  	 el3.align="center";
	 el3.style.color="#ffffff";
  	 el3.innerHTML=okr(e);
  	 sum3+=e;
  	 
  	 

	 el3=el2.insertCell( 2 );
	 	 el3.style.fontSize="12";
  	 el3.align="center";
	 el3.style.color="#ffffff";
  	 el3.innerHTML=okr(f);
  	 sum5+=f;

     lPrev = lPrev - c* 1 . 18 ;
     cPrev = c;

 // 	 el3=el2.insertCell( 6 );
 // 	 el3.align="right";
 // 	 el3.innerHTML=okr(lPrev);
  }  
  
  el2=el.insertRow(parseInt(form.LSrok.value)+ 2 );
  el3=el2.insertCell( 0 );
  el3.style.color="#ffffff";
  el3.style.fontWeight = "bold";
  	 el3.style.fontSize="12";
  el3.innerHTML="Итого";
    el3=el2.insertCell( 1 );
	el3.style.color="#ffffff";
  el3.style.fontWeight = "bold";
  	 el3.style.fontSize="12";
  el3.align="center";
  el3.innerHTML=okr(sum3);
     el3=el2.insertCell( 2 );
	 el3.style.color="#ffffff";
	 el3.style.fontSize="12";
  el3.style.fontWeight = "bold";
  el3.align="center";
  el3.innerHTML=okr(sum5);
  
    el2=el.insertRow(parseInt(form.LSrok.value)+ 3 );
  el3=el2.insertCell( 0 );
  el3.style.fontWeight = "bold";
  el3.style.color="#ffffff";
  	 el3.style.fontSize="12";
  el3.innerHTML="  ";
    el3=el2.insertCell( 1 );
  el3.style.fontWeight = "bold";
  el3.style.color="#ffffff";
  	 el3.style.fontSize="12";
  el3.align="";
  el3.innerHTML=" ";
     el3=el2.insertCell( 2 );
  el3.style.fontWeight = "bold";
  	 el3.style.fontSize="12";
  el3.style.color="#ffffff";
  el3.align="right";
 el3.innerHTML=" "
  
  el2=el.insertRow(parseInt(form.LSrok.value)+ 4 ); 
  el3=el2.insertCell( 0 );
  el3.style.fontWeight = "bold";
  el3.style.color="#ffffff";
  	 el3.style.fontSize="12";
  el3.innerHTML=" ";
  el3=el2.insertCell( 1 );
  el3.style.fontWeight = "bold";
  el3.style.color="#ffffff";
  	 el3.style.fontSize="12";
  el3.innerHTML="Общая сумма платежей по лизингу<br />";
  el3.align="left";
  el3=el2.insertCell( 2 );
  el3.style.color="#ffffff";
  el3.style.fontWeight = "bold";
  	 el3.style.fontSize="12";
  el3.align="center";
  el3.style.color="#ffffff";
  el3.innerHTML=okr(sum3);

  el2=el.insertRow(parseInt(form.LSrok.value)+ 5 ); 
  el3=el2.insertCell( 0 );
  el3.style.color="#ffffff";
  	 el3.style.fontSize="12";
  el3.style.fontWeight = "bold";
  el3.innerHTML=" ";
  el3=el2.insertCell( 1 );
  el3.style.fontWeight = "bold";
  	 el3.style.fontSize="12";
  el3.style.color="#ffffff";
  el3.innerHTML="Сумма НДС по платежам<br />";
  el3.align="left";
  el3=el2.insertCell( 2 );
  el3.style.fontWeight = "bold";
  	 el3.style.fontSize="12";
  el3.style.color="#ffffff";
  el3.align="center";
  el3.innerHTML=okr(sum5-sum5/ 1 . 18 );
  
}

</SCRIPT>

<!--webbot BOT="GeneratedScript" PREVIEW=" " startspan --><script Language="JavaScript" Type="text/javascript"><!--
function FrontPage_Form1_Validator(theForm)
{

  var checkOK = "0123456789";
  var checkStr = theForm.LSrok.value;
  var allValid = true;
  var validGroups = true;
  var decPoints =  0 ;
  var allNum = "";
  for (i =  0 ;  i < checkStr.length;  i++)
  {
    ch = checkStr.charAt(i);
    for (j =  0 ;  j < checkOK.length;  j++)
      if (ch == checkOK.charAt(j))
        break;
    if (j == checkOK.length)
    {
      allValid = false;
      break;
    }
    allNum += ch;
  }
  if (!allValid)
  {
    alert("В поле \"Срок договора лизинга\" можно вводить только цифры.");
    theForm.LSrok.focus();
    theForm.LSrok.value= 80 ;
    return (false);
  }

  var checkOK = "0123456789.";
  var checkStr = theForm.LNds.value;
  var allValid = true;
  var validGroups = true;
  var decPoints =  0 ;
  var allNum = "";
  for (i =  0 ;  i < checkStr.length;  i++)
  {
    ch = checkStr.charAt(i);
    for (j =  0 ;  j < checkOK.length;  j++)
      if (ch == checkOK.charAt(j))
        break;
    if (j == checkOK.length)
    {
      allValid = false;
      break;
    }
    if (ch == ".")
    {
      allNum += ".";
      decPoints++;
    }
    else
      allNum += ch;
  }
  if (!allValid)
  {
    alert("В поле \"Ставка НДС для лизингополучателя\" можно вводить только цифры.");
    theForm.LNds.focus();
    theForm.LNds.value= 18 ;
    return (false);
  }

  if (decPoints >  1  || !validGroups)
  {
    alert("Введите в поле \"Ставка НДС для лизингополучателя\" допустимое число.");
    theForm.LNds.focus();
    return (false);
  }

  var checkOK = "0123456789.";
  var checkStr = theForm.LStav.value;
  var allValid = true;
  var validGroups = true;
  var decPoints =  0 ;
  var allNum = "";
  for (i =  0 ;  i < checkStr.length;  i++)
  {
    ch = checkStr.charAt(i);
    for (j =  0 ;  j < checkOK.length;  j++)
      if (ch == checkOK.charAt(j))
        break;
    if (j == checkOK.length)
    {
      allValid = false;
      break;
    }
    if (ch == ".")
    {
      allNum += ".";
      decPoints++;
    }
    else
      allNum += ch;
  }
  if (!allValid)
  {
    alert("В поле \"Ставка по лизингу\" можно вводить только цифры.");
    theForm.LStav.focus();
    theForm.LStav.value= 13 ;
    return (false);
  }

  if (decPoints >  1  || !validGroups)
  {
    alert("Введите в поле \"Ставка по лизингу\" допустимое число.");
    theForm.LStav.focus();
    return (false);
  }

  var checkOK = "0123456789.";
  var checkStr = theForm.LAvans.value;
  var allValid = true;
  var validGroups = true;
  var decPoints =  0 ;
  var allNum = "";
  for (i =  0 ;  i < checkStr.length;  i++)
  {
    ch = checkStr.charAt(i);
    for (j =  0 ;  j < checkOK.length;  j++)
      if (ch == checkOK.charAt(j))
        break;
    if (j == checkOK.length)
    {
      allValid = false;
      break;
    }
    if (ch == ".")
    {
      allNum += ".";
      decPoints++;
    }
    else
      allNum += ch;
  }
  if (!allValid)
  {
    alert("В поле \"Авансовый платеж\" можно вводить только цифры.");
    theForm.LAvans.focus();
    return (false);
  }

  if (decPoints >  1  || !validGroups)
  {
    alert("Введите в поле \"Авансовый платеж\" допустимое число.");
    theForm.LAvans.focus();
    theForm.LAvans.value= 20 ;
    return (false);
  }

  var checkOK = "0123456789.";
  var checkStr = theForm.PwNds.value;
  var allValid = true;
  var validGroups = true;
  var decPoints =  0 ;
  var allNum = "";
  for (i =  0 ;  i < checkStr.length;  i++)
  {
    ch = checkStr.charAt(i);
    for (j =  0 ;  j < checkOK.length;  j++)
      if (ch == checkOK.charAt(j))
        break;
    if (j == checkOK.length)
    {
      allValid = false;
      break;
    }
    if (ch == ".")
    {
      allNum += ".";
      decPoints++;
    }
    else
      allNum += ch;
  }
  if (!allValid)
  {
    alert("В поле \"Стоимость\" можно вводить только цифры.");
    theForm.PwNds.focus();
    theForm.PwNds.value= 0 ;
    return (false);
  }

  if (decPoints >  1  || !validGroups)
  {
    alert("Введите в поле \"Стоимость\" допустимое число.");
    theForm.PwNds.focus();
    return (false);
  }
  return (true);
}

//--></script>

Далее следует форма для ввода данных и кнопка субмит,которая запускает Calc()
и после выводится таблица,где всё посчитано.
так вот, требуется вывести эту таблицу с данными в новом окме.
...
Рейтинг: 0 / 0
12.12.2006, 14:58
    #34193531
SkyLight
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передать данные в новое окно?
Если эта сгенеренная таблица находится в контейнере (DIV, например), то ничего сложного:

Код: plaintext
1.
2.
3.
4.
5.
6.
function openTableInNewWindow(cID, win_title){
    var new_win=window.open();
    var content='<html><head><link href="stylesheet.css" type="text/css" rel="stylesheet" />'+
        '<title>'+win_title+'</title></head><body>{0}</body></html>';
    new_win.document.write(content.replace('{0}',document.getElementById(cID).innerHTML);
}

,где cID - ID контейнера, в котором находится таблица, а win_title - заголовок нового окна, ну это так, для красоты.
...
Рейтинг: 0 / 0
12.12.2006, 16:50
    #34194065
shurik2533
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передать данные в новое окно?
Я прошу прощения,конечно, просто я на явескрипт не очень. Т.е. мне надо в страницу вставить код
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
<script Language="JavaScript" Type="text/javascript">
function openTableInNewWindow(cID, win_title){
    var new_win=window.open();
    var content='<html><head><link href="stylesheet.css" type="text/css" rel="stylesheet" />'+
        '<title>'+win_title+'</title></head><body>{0}</body></html>';
    new_win.document.write(content.replace('{0}',document.getElementById(cID).innerHTML);
}
</script>

генерируемую таблицу вставить в блок <div> и прописать там id так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
<DIV id=cID>
<TABLE id=tt1 border= 0  width="90%">
  <TBODY>
  <TR id=main>
    <TD align="left"><b>Месяц платежа</b></TD>
    <TD align="center"><b>График лизинговых платежей</b></TD>
    <TD align="center"><b>Сумма с НДС</b></TD>
   <!-- <td></td> -->
    </TR>
    </TBODY></TABLE><br /><br />Расчет составлен без учета транспортных налогов и страхования имущества.<br />
	<i>Процентная ставка по лизингу -  12 , 89  %</i>
</DIV>

а в кнопку сделать вот так:
Код: plaintext
1.
<INPUT onclick="openTableInNewWindow(cID, win_title)" type=button value="Вывод на печать" name=Calculate>

Собственно, я сделал так))..но не работает. Где может быть ошибка?
...
Рейтинг: 0 / 0
12.12.2006, 17:00
    #34194106
SkyLight
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передать данные в новое окно?
Эх, товарищ... Вам бы для начала синтаксис жабаскрипта подучить... Ну кто так пишет? Там же в функцию должен передаваться ID объекта, а не сам объект. Вот так надо:

Код: plaintext
1.
2.
3.
4.
5.
<div id="resultsContainer">
...
</div>

<button onclick="javascript:openTableInNewWindow('resultsContainer', 'Результаты')">Вывод на печать</button>
...
Рейтинг: 0 / 0
12.12.2006, 18:21
    #34194381
shurik2533
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передать данные в новое окно?
Огромное спасибо! Очень выручил
...
Рейтинг: 0 / 0
13.12.2006, 23:53
    #34198293
Ex_Soft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как передать данные в новое окно?
SkyLight
Эх, товарищ ... Ну кто так пишет?
Код: plaintext
1.
...onclick="javascript:openTableInNewWindow('resultsContainer', 'Результаты')"...

http://xpoint.ru/forums/programming/javascript/misc/faq.xhtml#150](в контексте onclick="javascript:..." )
_________________
"Helo, word!" - 17 errors 56 warnings
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Как передать данные в новое окно? / 7 сообщений из 7, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]