|
|
|
| Как из формы, которая имеет 4 поля, взять все введенные данные и вынести их в другое окно?
Только по-проще, если можно. Совсем с этим языком еще не знакома.
Привожу пример имеющегося:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>
<body>
<B><h1 align='center'><font color='a00654'>
Библиотека учителя физики<br>
<h6 align='center'><font color='6a5f4f'>
Какую книгу вы хотите заказать?
<form method="POST" action="handler.php">
<table width="100%" cellspacing="0" cellpadding="4">
<tr valign="top">
<td width="50%">Ваша фамилия, имя:<br> <input name="FIO" type="text" tabindex="1" size="30">
</td>
<td>Автор:<br> <input name="Avtor" type="text" tabindex="3" size="30">
</td>
</tr>
<tr valign="top">
<td>Название книги:<br>
<input name="NK" type="text" tabindex="2" size="30"> </td>
<td>Язык издания:<br>
<select name="JZ" tabindex="4" style="background: 00ffaa">>
<option selected>русский</option>
<option>украинский</option>
<option>английский</option>
</select></td>
</tr>
</table>
<P></p>
<input type=reset value="Очистить" style='background:ff0055'>
<P></p>
<input type="submit" name="press" value="Отправить запрос " style='background:99eedd'>
</form>
</body>
</html> | |
|
|
|
|
|
|
|
для: Светлана_Хохлова
(08.02.2009 в 10:42)
| | "Взять" - это очень просто.
То, что пользователь ввёл в конкретное текстовое поле (или выбрал из конкретного списка) конкретной формы, называется свойством value этого поля/списка. И его можно "взять", обратившись последовательно:
1. к документу - он всегда называется document
2. к конкретной форме по её имени - атрибуту NAME, или, если имени у формы нет (а у вас как раз таки нет), то по порядковому номеру формы в коллекции всех форм документа - в вашем случае форма на странице одна, следовательно, её порядковый номер будет НУЛЕВОЙ.
3. к конкретному полю/списку этой формы по его имени - атрибуту NAME (которые у вас есть).
То, что записано в поле под заголовком "Ваша фамилия, имя:" можно "взять", прописав
document.forms [0].FIO.value
| Соответственно, то, что он ввёл в поле "Название книги:", можно также просто "взять" -
document.forms [0].NK.value
|
АНАЛОГИЧНО можете "взять" данные и из двух других элементов формы.
"Вынести в другое окно" - тоже не сложно.
Только вот заковыка в том - КУДА ИМЕННО в этом другом окне "выносить"?
В какие-то другие поля другой формы?
Просто текстом в теле страницы?
Или ещё как-то?
Вы не написали. А мне медитировать неохота.
Ну и, наконец, вам надо определиться - когда именно надо "взять все введенные данные и вынести их"?
Что должно произойти - какое СОБЫТИЕ - чтобы что-то куда-то "вынеслось".
Например, пользователь должен что-то на странице нажать мышкой... | |
|
|
|
|
|
|
|
для: PAT
(08.02.2009 в 13:31)
| | Ой, как здорово и доступно Вы описали. Сейчас попробую.
Нужно просто в новое окно, т.е. подтверждающее запрос на книгу.
А событие, если все поля заполнены. | |
|
|
|
|
|
|
|
для: Светлана_Хохлова
(08.02.2009 в 14:03)
| | "событие, если все поля заполнены"
Это очень трудноУловимое событие.
Например, пользователь начнёт заполнять не с "Фамилии, имени", а с других полей.
"Фамилию, имя" будет заполнять в самом конце.
Напишет "Светлана Хо" и в этот момент пользователя отвлекёт телефонный звонок...
Как программа должна догадаться, что пользователь после разговора по телефону допишет "хлова"?
Не догадается ведь... и вы превратитесь в китаянку/кореянку :-)) | |
|
|
|
|
|
|
|
для: PAT
(08.02.2009 в 14:09)
| | Мне нравится ход Ваших мыслей. Китаянкой можно стать, выйти замуж за китайца, скажем. Будет фамилия типи "Хо"
Я поняла, что не сделаю до завтра эту лабораторную, не изучив всю теорию по этой теме...
А жаль...
Вам спасибо большое за помощь.
Может есть идеи, как сделать общую форму, по которой проверить данные? | |
|
|
|
|
|
|
|
для: Светлана_Хохлова
(08.02.2009 в 16:44)
| | Не люблю медитировать.
Но, видимо, придётся :-)
Предположу, что вам надо в отдельном окне получить подтверждение клиента в правильности заполненных полей перед тем как данные этих полей отправятся на сервер.
Если моё предположение верно, то вам надо в ваш HTML-код добавить две фразы (выделено жирно):
<input type=reset value="Очистить" style='background:ff0055' name="res">
<P></p>
<input type="submit" name="press" value="Отправить запрос " style='background:99eedd' onclick="MS (this.form); return false">
| ну, и, соответственно, между тегами <META> и </HEAD> прописать скриптовой блок:
<script>
function DIS (obj, x)
{
with (obj.forms [0])
{
FIO.disabled = x;
Avtor.disabled = x;
NK.disabled = x;
JZ.disabled = x;
press.disabled = x;
res.disabled = x;
}
}
function MS (x)
{
DIS (document, true);
var w = window.open ();
with (w.document)
{
write ('<html><head>');
write ('<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">');
write ('</head><body>');
write ('<h1 align="center">Подтвердите или отмените Ваш заказ</h1>');
write ('<table align="center" cellpadding="10" cellspacing="0" border="1">');
write ('<tr><td>Фамилия, имя<td>' + ((document.forms [0].FIO.value) ? document.forms [0].FIO.value : 'не указано'));
write ('<tr><td>Автор<td>' + ((document.forms [0].Avtor.value) ? document.forms [0].Avtor.value : 'не указано'));
write ('<tr><td>Название книги<td>' + ((document.forms [0].NK.value) ? document.forms [0].NK.value : 'не указано'));
write ('<tr><td>Язык издания<td>' + document.forms [0].JZ.options [document.forms [0].JZ.selectedIndex].text);
write ('</table>');
write ('<table width="100%" style="margin-top: 60px">');
write ('<tr><td width="50%"><input type="button" value="Отменяю!" onclick="opener.self.DIS (opener.document, false); self.close ()">');
write ('<td align="right"><input type="button" value="Подтверждаю!" onclick="opener.document.forms [0].submit (); self.close ()">');
write ('</table>');
write ('</body></html>');
}
}
</script>
|
PS. Набросал по-быстрому. Есть пара подводных камней, типа:
- не учтено, что окно с формой клиентом может быть закрыто
- окно с подтверждением тоже может быть клиентом закрыто
Всё это решаемо, только вот делать не стал, ибо - может вам вовсе не это надо :-) | |
|
|
|
|
|
|
|
для: PAT
(08.02.2009 в 17:40)
| | Супер!!!
Как здорово. Я Вас обожаю за помощь. Все работает лучшим способом.
Мне как раз это и надо.
Вы - отличный знаток. Желаю Вам успехов в работе!
Одно смущает, придется самой разобраться в этих кодах со временем. А для лабораторной завтрашней - это то, что надо!
Спасибо человеческое, огромное. | |
|
|
|