I have a database of students of my college. I want to use the data to fill admission form on http://www.rmlau.site/urn_r/Registration.aspx
I was trying to use JavaScript but it was not working because of XSS.
Is there a way I can achieve the same?
I am okay with a solution on any platform (Windows/Linux/Web Based).
I know it is a question for JavaScript but "Is there a way I can achieve the same?" motivated me to answer this. You can use Selenium for automated form filling.
Here is a working script to fill the form using selenium in Python. Hope this will help you out.
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import Select
import time
driver = webdriver.Chrome()
driver.get("http://www.rmlau.site/urn_r/Registration.aspx")
# Students information, loading from excel, csv whatsoever
name = "John Doe"
moName = "Jane"
faName = "Doe Doe"
dob = "17071997"
email = "foo@foo.com"
mobileNo = "090078601"
adharNo = "1231"
course = 'B.Sc. Part One'
time.sleep(3)
# Fill Form
driver.find_element_by_id("ctl00_ContentPlaceHolder1_txtName").send_keys(name)
driver.find_element_by_id("ctl00_ContentPlaceHolder1_txtMotherName").send_keys(moName)
driver.find_element_by_id("ctl00_ContentPlaceHolder1_txtFatherName").send_keys(faName)
driver.find_element_by_id("ctl00_ContentPlaceHolder1_txtEmail").send_keys(email)
driver.find_element_by_id("ctl00_ContentPlaceHolder1_txtMobilNo").send_keys(mobileNo)
driver.find_element_by_id("ctl00_ContentPlaceHolder1_txtAdhar").send_keys(adharNo)
select = Select(driver.find_element_by_id('ctl00_ContentPlaceHolder1_ddl_course'))
select.select_by_visible_text(course)
driver.find_element_by_id("ctl00_ContentPlaceHolder1_txtDOB").send_keys(dob)
driver.find_element_by_id("ctl00_ContentPlaceHolder1_txtDOB").clear()
driver.find_element_by_id("ctl00_ContentPlaceHolder1_txtDOB").send_keys(dob)
# Submit
driver.find_element_by_id("ctl00_ContentPlaceHolder1_btnsave").click()
Web Based Solution first enter a unique column (in this case mobile number) to search from database. Use ajax call for it. then fill all fields using javascript by id method
$(document).ready(function(){
$("#search").keyup(function(){
if($("#search").val().length>=10){
$.ajax({
type: "post",
url: '<?php echo base_url(); ?>search',
cache: false,
data:'search='+$("#search").val(),
success: function(response){
document.getElementById("name").value = response[0].name;
document.getElementById("age").value = response[0].age;
}
},
error: function(){
alert('Error while request..');
}
});
}
return false;
});
});