Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как получить значение формы (https://javascript.ru/forum/misc/17484-kak-poluchit-znachenie-formy.html)

Leap_Day 20.05.2011 23:19

Как получить значение формы
 
Дело состоит вот в чем: есть 2 файла index.php и secure.php, который подключается через iframe к index.php. В теле secure.php при загрузке передаю 2 значения переменных в index.php в поля input. Значения в этих полях появляются, но забрать оттуда их я так и не смог. Пытался вывести значения полей alert-ом и POST-ом, но они значения эти не видят.

////////////index.php

<table><tr><td>

<form method="post" name="id2">
 <input type="text" name="test">
 <input type="text" name="test1">
</form>
 
[PHP]<?
$log=$_POST["test"];
$passw=@$_POST["test1"];
echo $log;
?>[/PHP]
</td></tr></table>



////////////secure.php

<?
echo "<HTML>\n";
echo "<HEAD>\n";
echo "<TITLE>Добро пожаловать</TITLE>\n";
echo "</HEAD>\n";
echo "<BODY onload=\"parent.document.id2.test.value = log; parent.document.id2.test1.value = passw;\" bgcolor=\"#FFFFFF\">\n";

[JS]<SCRIPT LANGUAGE="JavaScript">
log="<? echo $log; ?>";
passw="<? echo $passw; ?>";
</script>[/JS]

echo "</BODY>\n";
echo "</HTML>\n";
?>

ksa 21.05.2011 08:27

Leap_Day, что-то не видно как secure.php подключен к index.php... Т.ч. потестить у меня не получится. Но как вариант предложу такое обращение к данным:

parent.document.getElementsByName('test')[0].value
parent.document.getElementsByName('test1')[0].value


Если вместо name у полей использовать id - обращение будет выглядеть лючше...

Не лишне напомнить что кроссдоменные обращения в iframe не доступны...

Leap_Day 21.05.2011 09:55

Попробовал parent.document.getElementsByName('test')[0].value, то же самое. если в самом поле указывать значение value, тогда его можно получить, а вот если значение присваивать через JS, то не получается...

Вот тестовый файл:

<html>
<head>
</head>
<body >
	<table border = 0 width = 100% height = 100% cellpadding =0 cellspacing = 0>
		<tr>
		<td  align = center  height = 100%>
	<table  border = 0 cellpadding =0 cellspacing = 0  >
		<tr >
			<td valign=top>
				<table border = 0   width = 240px >
					<tr>
						<td cellspacing = 0px>
							<iframe src="secure.php" width="300px" height="200" name='header' target='_parent' frameborder="0" scrolling="no" onload='new_var=window.frames[0].log; alert(new_var)' >Включите поддержку фреймов</iframe>
						</td>	
					</tr>
				</table>
			</td>
			<td valign=top style=" padding-top :17px;">
				<table  align=left width=1040px border=0  cellspacing=0 height = 100% style=" padding-left :8px;">
					<tr><td>
						<table>
							<tr><td>
								<form method="post" name="id2">
								 <input type="text" name="test">
								 <input type="text" name="test1">
								</form>
								<?$log1=$_POST["test"];
								$passw1=@$_POST["test1"];
								echo $log1;?>
							</td></tr>
						</table>
						</td></tr>
				</table>			
			</td>
		</tr>
	</table>
	</td></tr></table>
</body>
</html>

Leap_Day 22.05.2011 21:37

Что никто не сталкивался что ли с этим?:blink:

ksa 22.05.2011 22:14

Цитата:

Сообщение от Leap_Day
а вот если значение присваивать через JS, то не получается

В примере не увидел как что-то тем переменным присватвается программно...

Leap_Day 23.05.2011 08:58

Если не так, то либо не получается, либо я не знаю этого способа...

echo "<BODY onload=\"parent.document.id2.test.value = log; parent.document.id2.test1.value = passw;\" bgcolor=\"#FFFFFF\">\n";
<SCRIPT LANGUAGE="JavaScript">
log="<? echo $log; ?>";
passw="<? echo $passw; ?>";
</script>

ksa 23.05.2011 22:01

Leap_Day, опять какие-то огрызки... :( Может таки будет нормальный тестовый пример который можно будет скопировать и посмотреть у себя?


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