_IEFormElementGetValue

Pregunta Sin Miedo no te cortes cualquier cosa para empezar - Autoit se comienza facilmente.Para Ordenes o Comandos sueltos. Ver nota como preguntar.
Responder
joaquin
Aprendiz de Mago
Mensajes: 48
Registrado: 04 Jun 2008, 22:31
Ubicación: Barcelona, España

_IEFormElementGetValue

Mensaje por joaquin »

Hola!!
Necesito ayuda con la siguiente cuestión:
Quisiera obtener el valor de un elemento tipo combo de un IEForm.
En el Ejemplo, con "_IEFormElementGetValue " obtengo el valor "7" y el valor que quiero obtener es "BALEARES" . Para ello se me ocurrió hacerlo de la siguiente forma:

Código: Seleccionar todo

********************************* HTML *******************************************************************************
<select name="provinceId" onchange="onChange('province');"><option value="3">ALICANTE</option>
<option value="2">ALBACETE</option>
<option value="4">ALMERIA</option>
<option value="33">ASTURIAS</option>
<option value="6">BADAJOZ</option>
<option value="7" selected="selected">BALEARES</option>
***********************************************************************************************************************
$oSelect = _IEFormElementGetObjByName ($oForm, "provinceId")
$valor=_IEFormElementGetValue ($oSelect)
$source = _IEBodyReadHtml($oIE)
$result = StringInStr($source, "7")
$var = StringMid($source, $result,20)
$aArray1 = _StringBetween($var, '>', "</",1)
MsgBox(0, "Provincia", _ArrayToString($aArray1,@TAB, 0, 1))
El problema es que al buscar el valor "7" con la función "StringInStr" captura el primer valor que coincide con "7", al recorrer el body de la página. Por ejemplo si hubiera un valor "74" anterior lo captura, por lo que el método no resulta fiable. Si se precisa más la cadena con: "<option value="7"" no obtengo ningún resultado. Creo que tiene que ver con las comillas, pero ya he probado con poner dobles, quitarlas,...(¿?)
La cuestión que planteo es si hay otra alternativa para obtener el valor de la provincia seleccionada y no su código, o inluso algo del estilo ".selected"

Saludos!!!
Avatar de Usuario
Chefito
Profesional del Autoit
Mensajes: 2035
Registrado: 21 Feb 2008, 18:42
Ubicación: Albacete/Cuenca (España)

Re: _IEFormElementGetValue

Mensaje por Chefito »

Pues yo creo que hay varias formas de hacerlo. Una puede ser esta:

Código: Seleccionar todo

$oSelect=_IEGetObjByName($oIE, "provinceId")
MsgBox(0,"",$oSelect.item($oSelect.selectedindex).innertext)
$oSelect.selectedindex te da el número de option seleccionado, y $oSelect.item(numero).innertext te da el texto del item (opcion) que le indiques en el número. Juntando las dos cosas ya lo tienes :smt023 .

Respecto a lo de las dobles comillas, prueba a meter el texto entre comillas simples para que te coja las dobles comillas: '<option value="7"'.

Saludos.
Cita vista en algún lugar de la red: En este mundo hay 10 tipos de personas, los que saben binario y los que no ;).
joaquin
Aprendiz de Mago
Mensajes: 48
Registrado: 04 Jun 2008, 22:31
Ubicación: Barcelona, España

Re: _IEFormElementGetValue

Mensaje por joaquin »

Genial!!! Gracias Chefito por la eficaz respuesta !!
La solución es perfecta, sencilla y fiable ...Realmente me estaba complicando... :smt005
Thanks :smt023
Responder