Foros del Web » Programando para Internet » PHP »

obtencion de opciones de los campos de un formulario

Estas en el tema de obtencion de opciones de los campos de un formulario en el foro de PHP en Foros del Web. Hola. Estoy realizando un trabajo en la universidad, y no tengo demasiado trabajo previo con php. Lo que intento es obtener las distintas opciones de ...
  #1 (permalink)  
Antiguo 04/07/2010, 11:54
 
Fecha de Ingreso: julio-2010
Mensajes: 12
Antigüedad: 14 años, 4 meses
Puntos: 0
obtencion de opciones de los campos de un formulario

Hola. Estoy realizando un trabajo en la universidad, y no tengo demasiado trabajo previo con php. Lo que intento es obtener las distintas opciones de un formulario de la pagina web del metro de valencia, para generar una gramatica con estas de forma dinamica, gramatica que utilizare con voiceXML para realizar la peticion a la pagina web del formulario con los datos que recoja mediante voz.
El problema que tengo es que no se como obtener dinamicamente desde un script o archivo php que coloco en mi servidor, la informacion de las opciones disponibles en el los campos origen y destino que aparecen en la pagina en cuestion.
Dicha pagina es http://www.metrovalencia.es/tools_planificador.php.

Cualquier ayuda seria bien recibida, ya que llevo un toda la mañana intentandolo y no hay forma.

GRACIAS A TODOS!
  #2 (permalink)  
Antiguo 04/07/2010, 12:02
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 6 meses
Puntos: 1517
Respuesta: obtencion de opciones de los campos de un formulario

Con cURL o algún socket puedes obtener la información de otra página web. Solo debes aprender a manejarte con Expresiones Regulares para que obtengas lo que quieres exactamente o con DOM. Te recomiendo que mires el tema de aportes de este foro para que veas como trabajar con cURL o otra forma de conectarte al servidor remotamente, también hay otro de Expresiones Regulares y otro de como usar DOM.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 05/07/2010, 03:16
 
Fecha de Ingreso: julio-2010
Mensajes: 12
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: obtencion de opciones de los campos de un formulario

gracias por la respuesta.

He estado mirando documentacion sobre curl, pero me e encontrado con una funcion que creo que me puede servir: ereg().

dado que el codigo que quiero extraer es el siguiente:

" <label for="ini">Origen</label>

<select name="ini" id="ini"><option value="" selected="selected">Elige parada</option><option value="121">Aeroport</option><option value="14">Alameda</option><option value="5">Albalat dels Sorells</option><option value="36">Alberic</option><option value="9">Alboraya</option><option value="128">Alfauir</option><option value="43">Alginet</option><option value="8">Almàssera</option><option value="23">Amistat</option><option value="17">Àngel Guimerà</option><option value="24">Aragón</option><option value="42">Ausiàs March</option><option value="18">Av. del Cid</option><option value="22">Ayora</option><option value="109">Bailén</option><option value="69">Benaguasil 1r</option><option value="70">Benaguasil 2n</option><option value="97">Benicalap</option><option value="54">Beniferri</option><option value="12">Benimaclet</option><option value="57">Benimàmet</option><option value="40">Benimodo</option><option value="107">Bétera</option><option value="72">Burjassot</option><option value="73">Burjassot - Godella</option><option value="59">Campament</option><option value="53">Campanar - La Fe</option><option value="103">Campus de Burjassot</option><option value="56">Canterería</option><option value="41">Carlet</option><option value="50">Col·legi El Vedat</option><option value="15">Colón</option><option value="83">Dr. Lluch</option><option value="108">El Clot</option><option value="55">Empalme</option><option value="65">Entrepins</option><option value="45">Espioca</option><option value="130">Estadi del Llevant</option><option value="81">Eugenia Viñes</option><option value="13">Facultats</option><option value="200">Faitanar</option><option value="106">Feria Valencia</option><option value="99">Florista</option><option value="6">Foios</option><option value="44">Font Almaguer</option><option value="122">Francisco Cubells</option><option value="62">Fuente del Jarro</option><option value="98">Garbí</option><option value="74">Godella</option><option value="123">Grau</option><option value="27">Hospital</option><option value="25">Jesús</option><option value="39">L'Alcúdia</option><option value="67">L'Eliana</option><option value="85">La Cadena</option><option value="63">La Canyada</option><option value="88">La Carrasca</option><option value="111">La Coma</option><option value="101">La Granja</option><option value="84">La Marina</option><option value="2">La Pobla de Farnals</option><option value="68">La Pobla de Vallbona</option><option value="64">La Vallesa</option><option value="82">Les Arenes</option><option value="58">Les Carolines/Fira</option><option value="114">Ll. Llarga - Terramelar</option><option value="71">Llíria</option><option value="11">Machado</option><option value="119">Manises</option><option value="115">Marítim - Serrería</option><option value="95">Marxalenes</option><option value="110">Mas del Rosari</option><option value="37">Masalavés</option><option value="79">Masies</option><option value="3">Massamagrell</option><option value="76">Massarrojos</option><option value="127">Mediterrani</option><option value="7">Meliana</option><option value="20">Mislata</option><option value="21">Mislata - Almassil</option><option value="77">Moncada - Alfara</option><option value="66">Montesol</option><option value="38">Montortal</option><option value="4">Museros</option><option value="126">Neptú</option><option value="19">Nou d'Octubre</option><option value="46">Omet</option><option value="129">Orriols</option><option value="31">Paiporta</option><option value="100">Palau de Congressos</option><option value="10">Palmaret</option><option value="60">Paterna</option><option value="26">Patraix</option><option value="32">Picanya</option><option value="47">Picassent</option><option value="51">Pl. Espanya</option><option value="92">Pont de Fusta</option><option value="91">Primado Reig</option><option value="117">Quart de Poblet</option><option value="1">Rafelbunyol</option><option value="49">Realón</option><option value="94">Reus</option><option value="75">Rocafort</option><option value="120">Rosas</option><option value="80">S. Psiquiàtric</option><option value="93">Sagunt</option><option value="118">Salt de l'Aigua</option><option value="28">Sant Isidre</option><option value="102">Sant Joan</option><option value="131">Sant Miquel dels Reis</option><option value="48">Sant Ramón</option><option value="113">Santa Gemma</option><option value="61">Santa Rita</option><option value="78">Seminari - CEU</option><option value="86">Serrería</option><option value="87">Tarongers</option><option value="112">Tomás y Valiente</option><option value="201">Torre del Virrey</option><option value="33">Torrent</option><option value="34">Torrent Avinguda</option><option value="132">Tossal del Rei</option><option value="96">Trànsits</option><option value="52">Túria</option><option value="105">TVV</option><option value="89">Universitat Politècnica</option><option value="104">V. Andrés Estellés</option><option value="90">V. Zaragozá</option><option value="30">València Sud</option><option value="35">Villanueva de Castellón</option><option value="16">Xàtiva</option></select> <div class="clear"></div>

<div class="item left">
"

siendo la parte en roja lo que me interesa, es decir, quiero extraer todas las estaciones y meterlas en un array, cada estacion en una celda del array.

Para hacer esto, he escrito lo siguiente:

"ereg('<select name="ini"(.*)</select>', $mi_cadena, $matches);
ereg('<option value="[[:digit:]]">(.*)</option>', $matches[0], $coincidencias);"

siendo $mi_cadena un string que contiene todo el codigo fuente, me encuentro con que lo que devuelve $coincidencias es un array de una sola componente, en la que se guarda todas las estaciones en la misma celda del array.

Hay alguna forma de que salga cada estacion en una celda??

GRACIAS!!
  #4 (permalink)  
Antiguo 05/07/2010, 06:08
 
Fecha de Ingreso: julio-2010
Mensajes: 12
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: obtencion de opciones de los campos de un formulario

He hecho algunos avances. he conseguido extraer la siguiente linea al hacer un print_r sobre el resultado que he obtenido:

"Array
(
[0] => <option value="121">Aeroport</option><option value="14">Alameda</option><option value="5">Albalat dels Sorells</option><option value="36">Alberic</option><option value="9">Alboraya</option><option value="128">Alfauir</option><option value="43">Alginet</option><option value="8">Almàssera</option><option value="23">Amistat</option><option value="17">Àngel Guimerà</option><option value="24">Aragón</option><option value="42">Ausiàs March</option><option value="18">Av. del Cid</option><option value="22">Ayora</option><option value="109">Bailén</option><option value="69">Benaguasil 1r</option><option value="70">Benaguasil 2n</option><option value="97">Benicalap</option><option value="54">Beniferri</option><option value="12">Benimaclet</option><option value="57">Benimàmet</option><option value="40">Benimodo</option><option value="107">Bétera</option><option value="72">Burjassot</option><option value="73">Burjassot - Godella</option><option value="59">Campament</option><option value="53">Campanar - La Fe</option><option value="103">Campus de Burjassot</option><option value="56">Canterería</option><option value="41">Carlet</option><option value="50">Col·legi El Vedat</option><option value="15">Colón</option><option value="83">Dr. Lluch</option><option value="108">El Clot</option><option value="55">Empalme</option><option value="65">Entrepins</option><option value="45">Espioca</option><option value="130">Estadi del Llevant</option><option value="81">Eugenia Viñes</option><option value="13">Facultats</option><option value="200">Faitanar</option><option value="106">Feria Valencia</option><option value="99">Florista</option><option value="6">Foios</option><option value="44">Font Almaguer</option><option value="122">Francisco Cubells</option><option value="62">Fuente del Jarro</option><option value="98">Garbí</option><option value="74">Godella</option><option value="123">Grau</option><option value="27">Hospital</option><option value="25">Jesús</option><option value="39">L'Alcúdia</option><option value="67">L'Eliana</option><option value="85">La Cadena</option><option value="63">La Canyada</option><option value="88">La Carrasca</option><option value="111">La Coma</option><option value="101">La Granja</option><option value="84">La Marina</option><option value="2">La Pobla de Farnals</option><option value="68">La Pobla de Vallbona</option><option value="64">La Vallesa</option><option value="82">Les Arenes</option><option value="58">Les Carolines/Fira</option><option value="114">Ll. Llarga - Terramelar</option><option value="71">Llíria</option><option value="11">Machado</option><option value="119">Manises</option><option value="115">Marítim - Serrería</option><option value="95">Marxalenes</option><option value="110">Mas del Rosari</option><option value="37">Masalavés</option><option value="79">Masies</option><option value="3">Massamagrell</option><option value="76">Massarrojos</option><option value="127">Mediterrani</option><option value="7">Meliana</option><option value="20">Mislata</option><option value="21">Mislata - Almassil</option><option value="77">Moncada - Alfara</option><option value="66">Montesol</option><option value="38">Montortal</option><option value="4">Museros</option><option value="126">Neptú</option><option value="19">Nou d'Octubre</option><option value="46">Omet</option><option value="129">Orriols</option><option value="31">Paiporta</option><option value="100">Palau de Congressos</option><option value="10">Palmaret</option><option value="60">Paterna</option><option value="26">Patraix</option><option value="32">Picanya</option><option value="47">Picassent</option><option value="51">Pl. Espanya</option><option value="92">Pont de Fusta</option><option value="91">Primado Reig</option><option value="117">Quart de Poblet</option><option value="1">Rafelbunyol</option><option value="49">Realón</option><option value="94">Reus</option><option value="75">Rocafort</option><option value="120">Rosas</option><option value="80">S. Psiquiàtric</option><option value="93">Sagunt</option><option value="118">Salt de l'Aigua</option><option value="28">Sant Isidre</option><option value="102">Sant Joan</option><option value="131">Sant Miquel dels Reis</option><option value="48">Sant Ramón</option><option value="113">Santa Gemma</option><option value="61">Santa Rita</option><option value="78">Seminari - CEU</option><option value="86">Serrería</option><option value="87">Tarongers</option><option value="112">Tomás y Valiente</option><option value="201">Torre del Virrey</option><option value="33">Torrent</option><option value="34">Torrent Avinguda</option><option value="132">Tossal del Rei</option><option value="96">Trànsits</option><option value="52">Túria</option><option value="105">TVV</option><option value="89">Universitat Politècnica</option><option value="104">V. Andrés Estellés</option><option value="90">V. Zaragozá</option><option value="30">València Sud</option><option value="35">Villanueva de Castellón</option><option value="16">Xàtiva</option>

)
"
Ahora, el problema que tengo es que no se como separar lo que quiero, que son los nombres de las paradas de metro. He probado con lo siguiente:

preg_replace('#<option value="([0-9]*)">#','-',$matches[1][0],$coincidencias);

He hecho esto para que me sustituya la parte donde pone "<option value="xxx"> por un guion, de forma que luego yo recorra todo el string y donde encuentre el guion, hacer un corte con split, y poder dividir esto en un array de paradas.

Estoy desesperado, alguien me echa una mano por favor?

MIL GRACIAS

Etiquetas: campos, obtencion, opciones, formulario
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:02.