Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Собрать данные с формы, Не так просто, тут Delphi и прочее =) 
:(
    Опции темы
Гость_Александр
Дата 23.8.2004, 20:46 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











В программе (на Delphi, так что не судите строго стиль изложения) в качестве меню использую HTML-страничку. На ней расположены CheckBox, ComboBox, Edit, Edit1, Button. По нажатии кнопки пытаюсь все данные передать в программу методом GET. И все бы ничего, вот только из-за того, что я использую ссылку на файл как команду для моей программы, то фактически ссылка на реальный файл не существует, и из-за этого данные, которые должны были бы прицепиться к ссылке, отсутствуют – а они ну очень как нужны. Предполагаю, что надо написать скрипт, который на основании данных от CheckBox, ComboBox, Edit сформирует строчку типа {CheckBox:true}{ComboBox:False}{Edit:Всем привет}{Edi1t:Благодарю за внимание} и выполнит ее как ссылку. К сожалению, это казалось бы простейшее действо, для меня, только поверхностно знакомого с Явой, совершенно не под силу. Хотелось бы взглянуть на такой вот скриптик в составе HTML-странички. Буду очень признателен.
  Вверх
Sardar
Дата 23.8.2004, 22:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Вообще не понял что нужно... smile.gif
Код
function getData(form) {
var ret="";
for(var i=0; i<form.elements.length; i++) {
  ret+="{"+form.elements[i].name+":"+form.elements[i].value+"}";
}
return escape(ret);
}
function processAllForms() {
var ret="";
for(var i=0;i<document.forms.length; i++) ret+=getData(document.forms[i]);
}

Функция getData даст нам строку: {имя:значение}...
Фунцкия processAllForms соберет все данные со всех форм на странице.
Цитата
и выполнит ее как ссылку

А вот с этого момента ничего не понятно.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Cheba
Дата 23.8.2004, 22:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pointless one
***


Профиль
Группа: Vingrad developer
Сообщений: 1777
Регистрация: 27.11.2003
Где: /dev/null

Репутация: 1
Всего: 62



Если основной задачей является отсылка GET-запроса куда-либо, то будет гораздо удобней воспользоваться стандартным компонентом WebBrowser. У него есть метод Navigate, который принимает URL. Его сотавить совсем не сложно, если знать структуру. Если содержание формы (html) известно, то будет гораздо проще построить аналог этой формы используя VCL. Если HTML-форм несколько, можно использовать некое их описание (например, из ini-файлов) и по нему создавать интерфейс для воода данных формы.

Запрос GET состоит из следующих частей: протокол://сервер/путь/скрипт?поле1=значение1&поле2=значение2
Пример: http://forum.vingrad.ru/index.php?showtopic=28422&st=0

А вообще-то я не до конца понял проблему. Особенно интересным мне показалось вот это высказывание:
Цитата
По нажатии кнопки пытаюсь все данные передать в программу методом GET.

Ваша программа принимает донные, или отсылает их?
PM MAIL ICQ   Вверх
Гость_Александр
Дата 24.8.2004, 07:32 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Поясню. Программа представляет собой exe шник на котором расположен компанент TWebBrowser - т.е. на форме лежит просто браузер в котором HTML-страничкой сделано меню. У ентого компанента есть сообщение "страница бедет сменена" я этот момент в своей программе перехватываю. В качастве параметра в этой функции я получаю URL от ссылки ну например так <a href="{$C:AskEraseAllHist}{$U:AskEraseAllHist.html}">Удалить ВСЁ</a> т.е. при клике на этоу ссылки я в своем браузере получаю строку {$C:AskEraseAllHist}{$U:AskEraseAllHist.html} и принимаю решение - что делать дальше. Используя же <FORM>...</FORM> с методом get по идее все данные должны прицепиться к ссылке но этого не происходит т.к. ссылка у меня формальная и ее фактически не существует... Поэтому и потребовался такой скрипт. Возможно есть другие решения этой задачи? может кто подскажет?

  Вверх
Гость_Александр
Дата 24.8.2004, 10:56 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Возможно этот пример кое чего пояснит. Вот что люди добрые подсказали. Но как в это хозяйство прицепить значение_поля_File? И какие команды надо использовать для других типов таких как CHECKBOX, RADIO...

После нажатия "Go" ссылка будет обработана моей программой которая решит что делать дальше. Я еще раз повторюсь - браузер который работает с HTML-меню интегрирован в exe программу и является с ней одним целым. Таким образом для управления ресурсами программы я отлавливаю момент выполнения ссылки декодирую ее и выполняю. Примерно такая же система управления реализована, например, в виндозном проводнике (окошко с файлами, слева - там где пишет название папки и другие данные), или команда "Найти файлы и папки" (левая панель, там где вводятся данные для поиска) в той же винде (W2000)...



<INPUT type="text" name="File"><BR>
<a href="javascript:go()">GO!</a>
<script>
function go(){
window.location.href="{$С:OpenFile}"+"{$File:"+значение_поля_File+"}"
}
</script>

  Вверх
Sardar
Дата 24.8.2004, 12:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Тогда передай любую форму функции getData приведенной выше, а затем полученное значение присвой в window.location.href Получится то что ты сказал. Заметь что данные придут тебе URLEncoded - функция escape, если это не нужно то убери ее вызов.
Вообще вопрос экзотический smile.gif Со стороны JS все просто, а вот как дальше твоя прога работает мне не ясно.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Guest
Дата 24.8.2004, 12:30 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Ну дык как подставить значение из Input в мою ссылку все в толк не возьму... sad.gif Что нужно вписать вместо "значение_поля_File" что бы сформировалась ссылка с именем файла...
  Вверх
Sardar
Дата 24.8.2004, 12:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Так можно:
Код
<INPUT type="text" id="File"><BR>
<a href="javascript:go()">GO!</a>
<script>
function go(){
window.location.href="{$С:OpenFile}"+"{$File:"+document.getElementById("File").value+"}"
}
</script>



--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Гость_Александр
Дата 24.8.2004, 18:33 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Благодарю све пашет в лучшем виде! tounge.gif
  Вверх
Cheba
Дата 25.8.2004, 00:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pointless one
***


Профиль
Группа: Vingrad developer
Сообщений: 1777
Регистрация: 27.11.2003
Где: /dev/null

Репутация: 1
Всего: 62



Что-то я совсем не могу понять зачем нужно все это делать. Почему нельзя все это реализовать обычными контролами? Это ведь проще сделать. Гораздо проще.
PM MAIL ICQ   Вверх
Гость_Александр
Дата 25.8.2004, 20:54 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Так сказать спешу за временем... Дело в том что HTML код представляет очень большие возможности по оформлению внешнего вида програм. В принцие это первая пытка использовать такой метод - хочу сказать довольно удачная. Возможно со временем я прийду к чему нибудь другому (всмысле метода реализации)... Да кстати что это такое " контролами" - просто элементами на форме? - тогда это не очень прикольно для обычного юзера - ему охота что бы все было красименько и с прибамбасиками smile.gif
  Вверх
Cheba
Дата 25.8.2004, 23:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pointless one
***


Профиль
Группа: Vingrad developer
Сообщений: 1777
Регистрация: 27.11.2003
Где: /dev/null

Репутация: 1
Всего: 62



Цитата
Да кстати что это такое " контролами" - просто элементами на форме?
Ага, именно так.

Цитата
ему охота что бы все было красименько и с прибамбасиками  smile.gif
Ты Аську четвертую Лайт видел? Хочешь так же? Или, может, еще красивее? Не вопрос. Под делфи столько разных скин-движков написали, что и пальцев не хватает все перечислить.

В общем, если хочешь более подробно об этом узнать - стукай мне в Аську, или пиши на почту, потому что это уже оффтоп для данного раздела. Еще было бы неплохо зайти в раздел Delphi - там о скинах на прогу когда-то говорили (товарищи, пользуемся поиском).

PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0576 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.