Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Результат работы формы в новом окне (https://javascript.ru/forum/events/5036-rezultat-raboty-formy-v-novom-okne.html)

lelik 10.09.2009 10:03

Результат работы формы в новом окне
 
Здравствуйте, уважаемые. Возможно все просто, но никак не получается разобраться, прошу натолкнуть на мысль.

Задача:
Необходимо по нажатию на кнопку Submit формы открыть новое окно заданных размеров и передать в это окно результат работы php-сценария обработки формы.

Как решаю:
Есть php-сценарий, кт. содержит простую форму (test.php):
<form class="gto_form" action= "javascript:newWindow('test_show_param.php');" method="POST" >
<table cellpadding="0" cellspacing="0" border="0">
  <tr>
    <th>№ Борта</th>
    <th>Марка</th>
    <th>Отметить</th>
 </tr>
  <?
    while ($row = mssql_fetch_array($res_gto)) {
      echo "<tr>
      <td>$row[$ID]</td>
      <td>$row[$Name_M]</td>";
      <td><input type = 'checkbox' name = 'bort[$row[$ID]]' ></td>"; 
    }	
  ?>
</table>
		
<input class="submit_btn" name='submit_btn' type='submit' value='Отправить' >
</form>


Имеем php-сценарий для обработки данной формы(test_show_param.php):
Код:

$bort = $_POST['bort']; //используем переменную где нам нужно
В поле action в форме назначена функция javascript, кт открывает новое окно (newWindow.js) и выдает в окно результат работы test_show_param.php:

function newWindow (actionURL) {
   var win = window.open(actionURL, '', 'top=100,left=100,scrollbars=1,width=300,height=200');

   win.focus();
}


Я понимаю, что в таком варианте параметры из формы не передаются в test_show_param.php и в новом окне пусто. Вариант дописать параметры в javascript'е в адресную строку (GET) не подходит, т.к. данных достаточно много. Занести данные в переменную сессии тоже не получается, поскольку форма ещё не обработана. Подскажите как поступить в этой ситуации.

P.S. Смотрел в поиске, нашел схожую тему - предлагают прописать в форме target = "_blank". Но новое окно создается с параметрами по умолчанию. А хотелось бы задать свои атрибуты.

e1f 10.09.2009 16:57

Мб так:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
  <title>Без имени</title>
  <meta http-equiv="content-type" content="text/html;charset=utf-8" />
  <meta name="generator" content="Geany 0.17" />
</head>
<style type="text/css"></style>
<script type="text/javascript">
<!--
function _submit() {
    window.open('','new_win','width=400,height=200,location=no,toolbar=no,menubar=no,status=no,scrollbars=yes,resizable=yes');
}
//-->
</script>
<body>
<form action="" onsubmit="_submit()" target="new_win"><input type="submit" /></form>
</body>
</html>

lelik 11.09.2009 08:03

Не выходит, открывает новое окно заданных размеров, но передает туда файл с формой (test.php)

e1f 11.09.2009 13:34

таргет правильный устанавливаете?

lelik 14.09.2009 06:40

Пробую вот так:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 
<html>
<head>
  <title>Без имени</title>
  <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>

<script type="text/javascript">
<!--
function _submit() {
    window.open('test_show.php','new_win','width=400,height=200,location=no,toolbar=no,menubar=no,status=no,scrollbars=yes,resizable=yes');
}
//-->
</script>
<body>
<form action= "" onsubmit="_submit()" target = "test_show.php" method="POST" ></form>
</body>
</html>


Открывает файл test_show.php в новом окне, но не передает параметры из формы.

e1f 14.09.2009 15:31

А так?
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 
<html>
<head>
  <title>Без имени</title>
  <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>
 
<script type="text/javascript">
<!--
function _submit() {
    window.open('','new_win','width=400,height=200,location=no,toolbar=no,menubar=no,status=no,scrollbars=yes,resizable=yes');
}
//-->
</script>
<body>
<form action= "" onsubmit="_submit()" target = "new_win" method="POST" ></form>
</body>
</html>

lelik 17.09.2009 20:10

Открывает новое окно, параметры из формы по прежнему передовать не хочет. В общем надоело ковыряться, сделал target = "_blank".

e1f, спасибо за помощь!

greenwar 19.08.2010 18:42

можно же заранее создать окно с параметрами и дать ему имя, а потом в таргете его указать?

morg4n 20.08.2010 09:04

там, где вы указываете URL открывающейся страницы, добавьте следующий код
+'?parametr1=' + document.getElementById('input1').value + '&parametr2=' + document.getElementById('input2').value
идея понятна?

greenwar 20.08.2010 09:51

короче, делается это так:
<script type="text/javascript">
function openformwindow(){
window.open('','formwindow','width=400,height=200, location=no,toolbar=no,menubar=no,status=no,scroll bars=yes,resizable=yes');
}
</script>

<form ... target="formwindow">
<input type=submit ... onclick="openformwindow()">
</form>

смысл в том, что форма выдаёт результат работы скрипта в окно из таргета, которое открывается/создаётся кнопкой сабмит


Часовой пояс GMT +3, время: 22:59.