![]() |
Rellenar campos en página WEB y obtener resultado
2 Archivos Adjunto(s)
Hola compañeros.
Pues aquí estoy, atascado en una tontería (que seguro es una tontería) y no acabo de encontrar salida. No se del tema y estoy dando "palos de ciego" sin encontrar la solución. Se trata de una página web en la que se introduce la ruta de un fichero y se pulsa un botón (CALCULAR IBP); Eso devuelve otra página de resultados que me gustaría mostrar en Delphi. Mi problema radica en cómo pasar esos parámetros y "pulsar" el botón desde Delphi. Os adjunto el código de la web (paginaTest.zip) El código simplificado de la página es este: Código:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> La web "on line" es esta: http://www.ibpindex.com/ibpweb.asp?LAN=es Si queréis probar con una ruta de ejemplo para ver el resultado os adjunto un ZIP (ruta_de_ejemplo.zip) con una. He revisado mensajes sobre idHTTP utilizando el método Post, como estos: http://www.clubdelphi.com/foros/show...ht=IDhttp.Post http://clubdelphi.com/foros/showthre...917#post307917 Pero la verdad es que no se muy bien lo que estoy haciendo ni si lo estoy haciendo bien. ![]() El cuadro de texto tiene las propiedades: Type=file Size=69 Name=fichero Y el botón de CALCULAR IBP: Type=button style=... OnClick=subir() Value=Calcular IBP Name=Submi He probado con un código como este:
y con otro como este:
Pensando que en resp obtendría la página con el resultado, pero nada. En ambos casos ruta contiene un path con un fichero de una ruta. La verdad es que no acabo de entender cómo funciona el tema del Post; También he visto ejemplos pero no son exactamente iguales (por el tema de JavaScript) y por eso tal vez no me está funcionando. ¿Algun alma caritativa que me explique cómo va? Un saludo. |
Cita:
Cita:
|
Ja, ja, perdón. Sí funciona el archivo ejemplo.
// Saludos |
4 Archivos Adjunto(s)
Los vuelvo a subir; Prueba. Ya sabes que más de una vez he tenido problemas con los ZIP.
A los .RAR.ZIP hay que quitarles la extension .ZIP (en realidad son RAR) |
Je, je. El problema no era el zip, el problema era que había que extraerlo del zip antes de mandarlo al IBP :D
// Saludos |
Hola Germán, creo que ya está.
En el primer código que pones sobraría la línea
aunque tampoco afectaría. Por otra parte, en la línea:
la URL no es la del formulario sino la que corresponde a la propiedad action del formulario HTML (que es a donde se envían los datos y es el destino del POST), que sería Código:
http://www.ibpindex.com/prebabel_e.asp Con esto debe funcionar. // Saludos |
Me ha dejado deprimido, todo me suena a tagalo :eek:
|
En realidad no es complicado. Un formulario HTML no es más que un medio para recabar información que se manda al servidor. Dicha información debe ser procesada por algún script en el servidor. Tal script es el que se especifica en el parámetro action del formulario:
Código:
<form action="prebabel_e.asp" method="post" enctype="multipart/form-data"> La mayor parte de las veces, el script en el servidor, una vez que procesa los datos, envía al cliente (el que envia los datos) un mensaje de redirección indicando qué página debe solicitar para mostrar el resultado. La recepción de dicho mensaje y la petición de tal página, lo hace en automático el navegador. En el caso del IdHTTP es lo mismo siempre y cuando especifiquemos la opción HandleRedirects. // Saludos |
Explicado así parece sencillo :)
Lo que no entiendo bien es qué hace el programa delphi, en qué interviene ahí. |
Pues, digamos que tienes una aplicación de escritorio en la que quieres integrar el análisis del índice IBP (cualquier cosa que esto sea) pero no dispones del código delphi necesario. Entonces puedes usar el IdHTTP para acceder al sitio que provee el análisis y así reportarlo en tu propia aplicación.
Es como lo que alguna vez hice con el traductor de Google: integrarlo a una aplicación de escritorio mediante el uso de IdHTTP. // Saludos |
Entonces eso quiere decir que desde un .exe se puede enviar/recibir datos de/a una página web. Qué curioso.
No pensé que fuese "tan fácil". |
Interesante.
¿Este mismo método serviría para hacer las típicas altas, bajas, modificaciones y consultas en una base de datos a la que no hay acceso directo por ip? (Aplicación de escritorio -> PHP -> MySQL) |
Cita:
Lo haces así y parece sencillo. :) Lo del parámetro más o menos lo imaginaba; No tenía mucho sentido ahí, pero supongo que quedó de las pruebas. De lo de la página web marcada en la Action no tenía ni idea. Una cosa más a apuntar. Cita:
Funciona perfecto. Cita:
Gracias. |
Cita:
// Saludos |
Yo tengo un problema parecido con la página del Ministerio de Educación para buscar libros.
quiero introducir el ISBN y que lo busque y obtener la respuesta. He mirado y remirado el codigo fuente de la página, pero no consigo que me funcione. Mando como parámetros params.cisbnExt y como valor un ISBN pero no se que mas debo de enviar. He probado con el componente TidHttp y sin el. no me deja citar la página pero buscando en google ISBN escogiendo la página mcu.es |
Este es el texto de la página, yo creo que la parte que interesa es la siguiente:
Código:
|
Sigo sin conseguir hacer la consulta, solo he conseguido escribir directamente desde delphi en la página y que haga el submit, pero quiero que la consulta sea transparente.
|
Cita:
Saludos |
http://www.mcu.es/webISBN/tituloSimp...bn&language=es
esta es la url, mi intención es meter el ISBN y que ejecute la busqueda. Gracias de antemano. |
Explico la intención de la aplicación que quiero hacer. Tengo una aplicación en delphi para gestionar una biblioteca, pero para evitar tener que introducir el titulo del libro y el autor, mi intención es que leyendo el isbn con un lector de codigo de barras, vaya a la página del ministerio de cultura y busque, después desde la propia aplicación delphi lea el resultado de la busqueda de la propia página web y lo introduzca en la base de datos. Mi problema es que he probado a enviarle los datos a la página pero no lo consigo. La página esta php, aunque tiene algo de javascript. la pagina es http://www.mcu.es/webISBN/tituloSimp...bn&language=es, intento interceptar los campos y hacer un submit, pero no se muy bien como se hace o si se puede hacer.
Muchas gracias de antemano . |
La franja horaria es GMT +2. Ahora son las 11:21:35. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi