Что нового

[Автоматизация] Передать значение из формы в HTML страницу

Godygadu

Новичок
Сообщения
47
Репутация
0
Здравствуйте. Есть скрипт, который передает значение из формы в страницу .html, которая распологает его в тэг <OL>. На страницы есть 3 ячейки (в примере видно). Так вот, надо в первую ячейку передать с 1 по 8, во вторую с 9 по 16, в третью с 17 по 24, то есть хронологически, но в каждую ячейку. И все это из одной формы ввода. Тэг <OL> может устанавливать параметр с какой цифры стартовать список. Выглядит это так:
Код:
<OL start=1><LI>AutoIt</li</OL>
<OL start=6><LI>AutoIt</li</OL>
Вот пример кода:
Код:
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <IE.au3>

Local $oIE = _IECreateEmbedded()



$Form1 = GUICreate("Form1", 692, 289, 207, 291)

$BStolb = GUICtrlCreateButton("Button", 512, 208, 121, 41)

$InputStolb = GUICtrlCreateInput("", 496, 72, 161, 32)
GUICtrlSetFont(-1, 15, 400, 0, "MS Sans Serif")



GUICtrlCreateObj($oIE, 20, 20, 450, 228)

GUISetState(@SW_SHOW)

_IENavigate($oIE, @ScriptDir & "\test.html")

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
		Case $BStolb
			$iStolb = GUICtrlRead($InputStolb)
			$ObjStolb = _IEGetObjById($oIE, "1_ol")
			_IEDocInsertHTML($ObjStolb, "<li>" & $iStolb & "</li>", "beforeend")

	EndSwitch
WEnd


Код:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
</head>
<body scroll="" >
<table width="100%" border="1px">
<tr>
<td width=33% valign="top"><ol id="1_ol" style="text-transform:uppercase">1</ol></td>
<td width=33% valign="top"><ol id="2_ol" style="text-transform:uppercase">2</ol></td>
<td width=33% valign="top"><ol id="3_ol" style="text-transform:uppercase">3</ol></td>
</tr>
</table>
</body>
</html>
Помогите решить эту задачу. Работать будет только в IE.
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Godygadu [?]
Помогите решить эту задачу.
Код:
While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $BStolb
			$iInput = GUICtrlRead($InputStolb)
			Select
				Case $iInput >= 1 And $iInput <= 8 
					_SetOL('1_ol')
				Case $iInput >= 9 And $iInput <= 16 
					_SetOL('2_ol')
				Case $iInput >= 17 And $iInput <= 24
					_SetOL('3_ol')
			EndSelect
    EndSwitch
WEnd
 
Func _SetOL($s_ID)
	
	$o_El = _IEGetObjById($oIE, $s_ID)
	_IEDocInsertHTML($o_El, "<li>" & GUICtrlRead($InputStolb) & "</li>", "beforeend")
EndFunc;==>_SetOL
 
Автор
G

Godygadu

Новичок
Сообщения
47
Репутация
0
Не работает. Продолжает в первом столбике :scratch:
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Godygadu [?]
И чего это я не удивляюсь :whistle:
Код:
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <IE.au3>

Local $oIE = _IECreateEmbedded()



$Form1 = GUICreate("Form1", 692, 289, 207, 291)

$BStolb = GUICtrlCreateButton("Button", 512, 208, 121, 41)

$InputStolb = GUICtrlCreateInput("", 496, 72, 161, 32)
GUICtrlSetFont(-1, 15, 400, 0, "MS Sans Serif")



GUICtrlCreateObj($oIE, 20, 20, 450, 228)

GUISetState(@SW_SHOW)

_IENavigate($oIE, @ScriptDir & "\test.html")

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $BStolb
			$iInput = GUICtrlRead($InputStolb)
			Select
				Case $iInput >= 1 And $iInput <= 8 
					_SetOL('1_ol')
				Case $iInput >= 9 And $iInput <= 16 
					_SetOL('2_ol')
				Case $iInput >= 17 And $iInput <= 24
					_SetOL('3_ol')
			EndSelect
    EndSwitch
WEnd
 
Func _SetOL($s_ID)
	
	$o_El = _IEGetObjById($oIE, $s_ID)
	_IEDocInsertHTML($o_El, "<li>" & GUICtrlRead($InputStolb) & "</li>", "beforeend")
EndFunc;==>_SetOL
 
Автор
G

Godygadu

Новичок
Сообщения
47
Репутация
0
:beer: Уважаемый Garret. Однажды Вы мне очень помогли. Я благодарен вам.
Теперь я опишу Вам, как работает Ваш скрипт. Он работает. Это правда, НО! В каждом столбике в только в своем диапазоне. 1) 1-8(только цифры). 2)9-16(только цифры). 3)17-24(только цифры).
Дело в том, что я не сказал Вам, что в форме должны быть разные символы. Извините. Есть ли у Вас еще идеи? Спасибо.


Добавлено:
Сообщение автоматически объединено:

Кстати. Если в форму к цифре из диапазона дописывать символы, то работает, но список получается странный. :stars:
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Godygadu
Я смутно вас понимаю. :scratch:
Так?
Код:
;...
Local $i

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $BStolb
			
			$i +=1

			Select
				Case $i >= 1 And $i <= 8 
					_SetOL('1_ol')
				Case $i >= 9 And $i <= 16 
					_SetOL('2_ol')
				Case $i >= 17 And $i <= 24
					_SetOL('3_ol')
				Case Else
					$i = 0
			EndSelect
    EndSwitch
WEnd
;...
 
Автор
G

Godygadu

Новичок
Сообщения
47
Репутация
0
Ну, почти. Только в каждом столбике должно быть продолжение предыдущего , то есть 1-8, 9-16, 17-24. А сейчас получается, что в каждом от 1 до 8. :scratch:
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Это вам нужно?
Код:
While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $BStolb
			
			$i +=1
			Select
				Case $i >= 1 And $i <= 8 
					_SetOL('1_ol', $i)
				Case $i >= 9 And $i <= 16 
					_SetOL('2_ol', $i)
				Case $i >= 17 And $i <= 24
					_SetOL('3_ol', $i)
				Case Else
					$i = 0
			EndSelect
    EndSwitch
WEnd
 
Func _SetOL($s_ID, $i_Value)
	
	$o_El = _IEGetObjById($oIE, $s_ID)
	_IEDocInsertHTML($o_El, "<li value="& $i_Value &">" & GUICtrlRead($InputStolb) & "</li>", "beforeend")
EndFunc;==>_SetOL
 
Автор
G

Godygadu

Новичок
Сообщения
47
Репутация
0
Большое спасибо! Это то, что нужно! Все работает на "Ура"! :IL_AutoIt_1: :beer:
 
Верх