Показать сообщение отдельно
  #1 (permalink)  
Старый 29.07.2009, 18:31
Новичок на форуме
Отправить личное сообщение для RAUS Посмотреть профиль Найти все сообщения от RAUS
 
Регистрация: 29.07.2009
Сообщений: 3

Работа с окнами через opener. Нид хелп
Соббсна, сабж:
Есть пхп файл кпримеру doc1.php. При вызове его с параметрами например: doc1.php?do=edit&id=5&page=3 появляется форма, являющаяся одной из страниц содержащих информацию о клиенте например.

на этой форме есть текстовое поле:
<input type="text" name="editdate" disabled>

в которое автоматом из базы возвращается дата рождения клиента.
Рядом с этим полем есть кнопка для открытия файла datepicker.php в новом всплывающем окне (позволяет указать дату рождения и подставляет ее в текстовое поле на форме в формате ГГГГ-ММ-ДД). код для работы этой кнопки:
<script language="javascript">
	function open_window(link,w,h)
	{
		var win = "width="+w+",height="+h;
		newWin = window.open(link,'newWin',win);
		newWin.focus();
	}
</script>
<input type="button" value="Get Date" onClick="open_window('datepicker.php?do=date&tn=editdate',400,150);" >


Сгенерированный ХТМЛ код в вызваном всплывющем окне таков:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<script language="javascript">
	function send(type)
	{
		var res = "";
		
		if(type == 'date')
		{
			var year_id = document.getElementById('years_date');
			var month_id = document.getElementById('months_date');
			var day_id = document.getElementById('days_date');	
			
			var sel_year = year_id.value;
			var sel_month = month_id.value;
			var sel_day = day_id.value;
			
			res=sel_year+'-'+sel_month+'-'+sel_day;
		} 
		
		opener.editdate.value=res;		
                      window.close(); 
	
	}
</script>


<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Datepicker</title>
</head>

<body>
<p>Введіть дату: <br><br>Рік: 
<select name='date_year' id='years_date'>
	<option value='2009'>2009</option>
	<option value='2008'>2008</option>
</select>
&nbsp;&nbsp;Місяць: 
<select name='date_month' size='1' id='months_date'>
	<option value='01'>Січень</option>
	<option value='02'>Лютий</option>
</select>
&nbsp;&nbsp;Число: 

<select name='date_day' id='days_date'>
	<option value='01'>1</option>
	<option value='02'>2</option>
	<option value='03'>3</option>

</select>
</p><a href="#" onclick="send('date');" title="OK">OK</a>
</body>
</html>



Проблемма в том, что вышеописанное работает (значение выбранное во всплывающем окне успешно подставляется в текстовое поле на форме) только для случая если форму разместить не в doc1.php?do=edit&id=5&page=3 а в doc1.php.

Как только появляются параметры в вызове исходного документа скрипт перестает работать.
Кто-то может дать дельный совет кроме того чтобы вызывать без параметров? =)
Ответить с цитированием