Страница: 1 | 2 |
Вопрос: Достать данные из HTML-Форм
Добавлено: 09.01.06 18:46
Автор вопроса: astoro | ICQ: 649109
Есть файл HTML, созданный например в Microsoft Word.
В этом файле есть обычный текст с разным форматированием плюс текстбоксы и чекбоксы (для примера).
Я кидаю на VB форму WebBrowser и открываю эту страницу.
Ввожу данные в текстбоксы, отмечаю чекбоксы.
Как мне эти данные по нажатию кнопки на VB форме (или можно даже по нажатию кнопки на самой HTML-странице, но лучше на VB форме) получить в программу?
Ответы
Всего ответов: 22
Номер ответа: 1
Автор ответа:
astoro
ICQ: 649109
Вопросов: 31
Ответов: 391
Профиль | | #1
Добавлено: 09.01.06 19:24
Немного дополнительной информации.
По видимому, достать сию информацию по нажатию кнопки на VB форме невозможно, по крайней мере - по простому.
Если доставать данные по нажатию кнопки, расположенной на самой HTML-странице, то значить нужно использовать VBScript.
Я в языках HTML, VBScript и прочих других, кроме VB6 ни ухом ни рылом. Если можно, для тех кто захочет и сможет ответить, - напишите коротенкий пример, с двумя текстбоксами. Или ссылку на пример.
Номер ответа: 2
Автор ответа:
GSerg
Вопросов: 0
Ответов: 1876
Профиль | | #2
Добавлено: 09.01.06 19:49
Private Sub Form_Load()
WebBrowser1.Navigate "c:\1.htm"
End Sub
Private Sub Command1_Click()
Dim p As IHTMLDocument2, c As IHTMLElementCollection
With WebBrowser1.Document.body.All.tags("INPUT"
MsgBox .Item("textbox1".Value
MsgBox .Item("textbox2".Value
End With
End Sub
Номер ответа: 3
Автор ответа:
GSerg
Вопросов: 0
Ответов: 1876
Профиль | | #3
Добавлено: 09.01.06 19:50
Переменные p и c убрать. Остались случайно, нафиг не нужны.
Номер ответа: 4
Автор ответа:
astoro
ICQ: 649109
Вопросов: 31
Ответов: 391
Профиль | | #4
Добавлено: 09.01.06 20:07
Пишет
Object variable or With block variable not set
на первом MsgBox
Имена объектов на HTML-странице совпадают (TextBox1 и TextBox2)
Наверна - проблема с INPUT.
Кстати, свойства Body у Document не появляется и вообще, у Document ни одного свойства или метода не появляется.
Номер ответа: 5
Автор ответа:
GSerg
Вопросов: 0
Ответов: 1876
Профиль | | #5
Добавлено: 10.01.06 05:16
Разумеется, нужно подождать, пока прогрузится документ.
И разумеется, это работает, если элементы управления созданы тёгами <input>.
Номер ответа: 6
Автор ответа:
astoro
ICQ: 649109
Вопросов: 31
Ответов: 391
Профиль | | #6
Добавлено: 10.01.06 06:06
к сожалению, слово тег для меня малознакомо.
Я сделал страницу в Ворде, как мне сделать там элементы управления с тегом input?
или может быть воспользоваться другим редактором?
Каким, и как это сделать в нем?
Номер ответа: 7
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #7
Добавлено: 10.01.06 23:37
господи, тот хтмл пол часа учить, го в инет качай любой справочник и будешь знать шо такое тег, и не толко
Тег - карлючка, как правело на стене, обозначающая чей-то автограф... ну это у графитчиков у программеров же это ... ну типа бэ <b>тра-ля-ля</b> так вот "<b>" - и есть тег, ну шобы траляля жырное было
Шо б не баян:
Оригинальная идея, открыть 80-ый, и экшен у формы на себя 127.0.0.1 сделать а патом разбирать http пакет А шо, кто тут ищет лёгкие пути, а?! )
Номер ответа: 8
Автор ответа:
astoro
ICQ: 649109
Вопросов: 31
Ответов: 391
Профиль | | #8
Добавлено: 11.01.06 06:14
Спасибо HACKER и спасибо GSERG
Вчера чета у меня глючило - к VBNET не мог подлючится, и не мог написать
Справочник скачал, слово "ТЕГ" стало ближе.
Ворд свои объеты создает с тегом Object.
Все теперь ясно.
Номер ответа: 9
Автор ответа:
astoro
ICQ: 649109
Вопросов: 31
Ответов: 391
Профиль | | #9
Добавлено: 11.01.06 16:23
Продолжение вопроса.
Уважаемые гуру:
Код HTML-страницы:
Форма 1
<P>
<FORM
METHOD="POST" ACTION="/cgi-bin/post-query">
Имя: <INPUT
NAME="entry1">
<P>
Постинг: <INPUT
NAME="entry2">
<P>
Нажми: <INPUT
TYPE="submit" VALUE="Запостить постинг">
<P>
</FORM>
:Конец кода HTML страницы
После ввода данных в первое поле 111 во второе поле 222, при нажатии пользоватлем на кнопку в браузер передается строка (это я понял из документации, вроде правильно понял, поправте если что...)
/cgi-bin/post-query?entry1=111&entry2=222
можно эту строку в программу получить?
или хотя бы ?entry1=111&entry2=222
или вообще эти данные в другом каком-нибудь формате?
Номер ответа: 10
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #10
Добавлено: 11.01.06 16:37
Имя: <INPUT NAME="[U]entry1[/U]"><br>
Постинг: <INPUT NAME="[U]entry2[/U]"><br>
<INPUT TYPE="submit" VALUE="Запостить постинг"><br>
</FORM>
print $entry1."\r\n";
print $entry2."\r\n";
?>
Номер ответа: 11
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #11
Добавлено: 11.01.06 16:39
та ёпты! хотел подчеркнуть, так в коде ж неработают теги эти, а зря блин!
<FORM METHOD="POST" ACTION="/cgi-bin/post-query">
Имя: <INPUT NAME="entry1"><br>
Постинг: <INPUT NAME="entry2"><br>
<INPUT TYPE="submit" VALUE="Запостить постинг"><br>
</FORM>
Номер ответа: 12
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #12
Добавлено: 11.01.06 16:52
Если WebBrowser испоьзуешь, то лови событие BeforeNavigate2 и смотри
там URL. Если я правильно понял задачу.
Номер ответа: 13
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #13
Добавлено: 11.01.06 16:52
Ну почему зря? Наоборот специально отключили, когда в таком коде они
начинали глючить:
for (i = 0; i < 10; i++)
{
arr *= 2;
}
Номер ответа: 14
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #14
Добавлено: 11.01.06 17:04
Ну вот видишь, сглючили А вот так не глючат:
{
arr[i] *= 2;
}
Номер ответа: 15
Автор ответа:
«UL.eXe»
ICQ: 197.895.916.247
Вопросов: 72
Ответов: 540
Профиль | | #15
Добавлено: 11.01.06 17:09
for (i = 0; i < 10; i++)
{
arr *= 2;
}