The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Как передать данные "
Вариант для распечатки  
Пред. тема | След. тема 
Форумы WEB технологии (Public)
Изначальное сообщение [ Отслеживать ]

"Как передать данные "  
Сообщение от rom74 email(??) on 17-Фев-09, 11:10 
Коллеги, здравствуйте!

Существует форма на странице. В заголовке этой формы ставлю:
<form action="javascript:openWindow('calc.html',500,460);" method="POST">
Т.е. по нажатию клавиши submit будет открыто новое окно. Проблема заключается в том, что в это новое окно не передаются данные, содержащиеся в форме на текущей странице. Пробовал метод GET - тоже ничего не передается. Как туда эти данные передать?

функция openWindow описана так:

<script type="text/javascript" language="JavaScript">
function openWindow(url,x,y) {
  x+=120;
  y+=180;
  newWindow = window.open(url,"newWindow","toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=yes,copyhistory=no,width="+x+",height="+y);
}
</script>

Заранее спасибо за ответ!

Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Как передать данные "  
Сообщение от angra (??) on 17-Фев-09, 11:31 
Краткий ликбез
1. Данные формы могут быть обработаны только скриптом на сервере, но не в простом html
2. action подразумевает url скрипта на сервере и именно для него играет роль method, если же вы подменяете action на js, то стандартных действий не происходит и method роли не играет
3. Действие GET можно сымитировать ручной формировкой url для window.open, хотя практической пользы в вашем случае ноль(если конечно сервер не сконфигурирован извращенцем на обрабатку calc.html как скрипта). Действие POST через window.open сымитировать нельзя.

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

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Как передать данные "  
Сообщение от rom74 email(??) on 17-Фев-09, 11:43 
calc.html - это PHP-скрипт. Говоря вашим языком - апач сконфигурирован "извращенцем", т.е. мной.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "Как передать данные "  
Сообщение от angra (??) on 17-Фев-09, 11:58 
Тогда формируйте get запрос вручную. Учтите, что он ограничен размером и не поддерживает upload. Пример:
<script type="text/javascript" language="JavaScript">
function openWindow(url,x,y) {
  param='?name='+document.getElementById('name').value+'&pass='+document.getElementById('name').value;
  x+=120;
  y+=180;
  newWindow = window.open(url+param,"newWindow","toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=yes,copyhistory=no,width="+x+",height="+y);
}
</script>
<form action="javascript:openWindow('calc.html',500,460);" method="POST">
<input id="name">
<input id="pass">
</form>

Возможно значения параметров надо подвергать url encoding, но мне лень искать какой функцией это делается и смотреть описание window.open на предмет подобной необходимости(двойная кодировка также вредна как и ее полное отсутствие).

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "Как передать данные "  
Сообщение от rom74 email(??) on 17-Фев-09, 13:59 
Спасибо! Почти получилось. Только вот что интересно, если элемент формы чекбокс (например <input type="checkbox" id="skidka">), то при вашем подходе в ГЕТ-запрос передается значение on в любом случае и когда галочка поставлена на элементе и когда не поставлена. Может быть можно как-то проверить, взведен ли чекбокс?
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "Как передать данные "  
Сообщение от angra (??) on 17-Фев-09, 14:03 
Почитайте какие атрибуты имеют элементы формы и именно их проверяйте, для checkbox это что-то вроде checked вместо value
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "Как передать данные "  
Сообщение от rom74 email(??) on 17-Фев-09, 14:30 
Ух ты! Получилось! Спасибо!

В форме:

<input type="checkbox" id="skidka">

а в жава-скрипте:

if(document.getElementById('skidka').checked) param = param+'&skidka=on';

Надеюсь, кому-то тоже будет полезно

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру