powered by simpleCommunicator - 2.0.38     © 2025 Programmizd 02
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Как передать данные в новое окно?
7 сообщений из 7, страница 1 из 1
Как передать данные в новое окно?
    #34193172
shurik2533
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть сайт на PHP движке. На одну страницу повешен калькулятор на JavaScript.
Надо сделать версию для печати результатов работы калькулятора, т.е. что бы при нажатии на кнопку результаты выводились в новом окне.
На движке есть функция "версия для печати",но она выводит в новом окне все тот же
калькулятор и надо считать заново
...
Рейтинг: 0 / 0
Как передать данные в новое окно?
    #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
Как передать данные в новое окно?
    #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
Как передать данные в новое окно?
    #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
Как передать данные в новое окно?
    #34194106
Фотография SkyLight
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Эх, товарищ... Вам бы для начала синтаксис жабаскрипта подучить... Ну кто так пишет? Там же в функцию должен передаваться ID объекта, а не сам объект. Вот так надо:

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

<button onclick="javascript:openTableInNewWindow('resultsContainer', 'Результаты')">Вывод на печать</button>
...
Рейтинг: 0 / 0
Как передать данные в новое окно?
    #34194381
shurik2533
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Огромное спасибо! Очень выручил
...
Рейтинг: 0 / 0
Как передать данные в новое окно?
    #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
7 сообщений из 7, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Как передать данные в новое окно?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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