Llenar formularios de forma automática.

Iniciado por 0xFer, 24 Febrero 2017, 03:38 AM

0 Miembros y 1 Visitante están viendo este tema.

0xFer

Siempre me encuentro con el problema de tener que llenar formularios de forma automática, normalmente lo hago cogiendo el Id del elemento en el HTML y escribiendo un javascript de esta manera:

Código (javascript) [Seleccionar]

function fillValuesInTextBoxes()
{
    var text = document.getElementById("firsttextbox").value;

    document.getElementById("secondtextbox").value = text;
    document.getElementById("thirdtextbox").value = text;
    document.getElementById("fourthtextbox").value = text;
}


El problema, ahora la página donde quiero automatizar este proceso no tiene los elementos Id, entonces quisiera saber cuales son las técnicas que se usan en estos casos, tengo varias ideas pero estoy muy verde en esto de páginas web.
Código (java) [Seleccionar]
int getRandomNumber(){
    return 4; //chosen by fair dice roll
              //guaranteed to be random
}

engel lex

Código (javascript) [Seleccionar]
document.getElementsByName("fname");

si es un formulario (form) tiene que tener names
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

integeroverflow

Cita de: 0xFer en 24 Febrero 2017, 03:38 AM
Siempre me encuentro con el problema de tener que llenar formularios de forma automática, normalmente lo hago cogiendo el Id del elemento en el HTML y escribiendo un javascript de esta manera:

Código (javascript) [Seleccionar]

function fillValuesInTextBoxes()
{
    var text = document.getElementById("firsttextbox").value;

    document.getElementById("secondtextbox").value = text;
    document.getElementById("thirdtextbox").value = text;
    document.getElementById("fourthtextbox").value = text;
}


El problema, ahora la página donde quiero automatizar este proceso no tiene los elementos Id, entonces quisiera saber cuales son las técnicas que se usan en estos casos, tengo varias ideas pero estoy muy verde en esto de páginas web.


tenes que llenar un formulario automaticamente en una web para automatizar un proceso? como registrarse o algo asi?

podrias usar un script en python con el modulo pycurl, y hacer la consulta directamente al archivo php donde se procesan los datos y le pasas los parametros por POST

dato000

Cita de: integeroverflow en 24 Febrero 2017, 07:00 AM
tenes que llenar un formulario automaticamente en una web para automatizar un proceso? como registrarse o algo asi?

podrias usar un script en python con el modulo pycurl, y hacer la consulta directamente al archivo php donde se procesan los datos y le pasas los parametros por POST

Esas es una forma, se tiene que acceder a la información de parte del servidor donde esta alojada la información que se esta guardando para hacer el autocompletado.

Esto como dijo nuestro amigo puede hacerse usando una petición http, pero no se debe usar un POST, un POST es usado para enviar información y proceder a ciertas funciones del lado del servidor, como por ejemplo, guardar o actualizar la información en la base de datos. Se debe usar una petición GET.

Ahora, para ello, debe utilizarse un lenguaje que el servidor entienda y pueda capturar la petición enviada desde el cliente. Por eso se usa un lenguaje como python o perl o php, como dice arriba. Es solo una de las muchas maneras, yo en particular uso .NET para ese trabajo, es decir, C#.

También es importante resaltar que una de las maneras más practicas de realizar esa labor es usar AJAX para facilitar la comunicación entre la petición http que se hace de parte del cliente (el navegador) hacia el servidor (lógica del negocio y persistencia de datos) para mostrar esa información que permita el autocompletado en campo de texto.

Ahora como mencionas tu no tienes elementos ID (yo hablo dos tipos de ID, el del tag de los nodos del DOM de la página, como los registros que se guardan en base de datos), así que todo lo estas trabajando desde el lado del cliente sin que se guarden datos, lo veo como un laboratorio, así que simplemente puedes crear en javascript una lista con los textos que se usan en el autocompletado.

No es nada complicado, pero es necesario que las elementos de tu formulario, en este caso, las cajas de texto o textbox, deban usar un id para que el script entienda, interprete y luego inyecte los datos que se estan usando para el autocompletado para una experiencia de usuario más enriquecedora. Ahora, para ello, debe implementarse una libreria como jquery (y creo que también jqueryUI)

te dejo un ejemplo simple, (para que funcione debe usarse esta libreria https://github.com/uohzxela/fuzzy-autocomplete):

Código (html4strict) [Seleccionar]

<input type="text" onkeyup="changeInput(this.value)">
<div id="result"></div>


Código (javascript) [Seleccionar]

var people = ['Steven', 'Sean', 'Stefan', 'Sam', 'Nathan'];

function matchPeople(input) {
  var reg = new RegExp(input.split('').join('\\w*').replace(/\W/, ""), 'i');
  return people.filter(function(person) {
    if (person.match(reg)) {
      return person;
    }
  });
}

function changeInput(val) {
  var autoCompleteResult = matchPeople(val);
  document.getElementById("result").innerHTML = autoCompleteResult;
}



te dejo otras fuentes para el autocomplete, excelentes desempeños:

https://jqueryui.com/autocomplete/
http://leaverou.github.io/awesomplete/

Ahora, te recomiendo que uses jqueryUI, muy facil de usar, y sirve para practicamente todo.