//XmlHttpRequest используется для обмена данными с сервером, умеет отправлять запрос и получать ответ с сервера. <a href="http://xmlhttprequest.ru/">Подробно</a> (настоятельно рекомендую ознакомится). Наш вариант является кроссбраузерным, по этому проблем в различных браузерах быть не должно
function getXmlHttp(){
  var xmlhttp;
  try {
    xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  } catch (e) {
    try {
      xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (E) {
      xmlhttp = false;
    }
  }
  if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
    xmlhttp = new XMLHttpRequest();
  }
  return xmlhttp;
}

function process_form() {
    //создаём объект для запроса к серверу
    var req = getXmlHttp();
    //присваиваем переменным данные из нашей формы, для отправки серверу
    var field1 = document.getElementById('email').value;
    var field2 = document.getElementById('sub_region').value;
    //если вы используете другие тип полей, ознакомьтесь с документацией - как получать из них данные - http://www.w3schools.com/htmldom/dom_obj_select.asp
    //создаём URL обращения к серверу - имя_файла?переменна1=значение1&переменна2=значение2, и наш серверный PHP скрипт сможет спокойно получить данные при помощи $_GET[].
    var url = 'ajax.php?email='+field1+'&sub_region='+field2;
    //открываем соединение
    req.open('GET', url, true);
    // в нем будем отображать ход выполнения
    var statusElem = document.getElementById('status');
    // onreadystatechange активируется при получении ответа сервера
    req.onreadystatechange = function() {
        if (req.readyState == 4) {
            // показать статус (Not Found, ОК..)
            statusElem.innerHTML = '<input class="imgbtn" type="image" src="/images/one_click_thankyou.gif">'
        }
    }
    // отсылаем сформированный запрос
    req.send(null);
    // отображает статус во время выполнения (заменяет собой элемент div id="status"), в данном примере - перекрывает кнопку отправки данных (элегантное решение, чтобы предотвратить повторное нажатие кнопки отправки данных).
    statusElem.innerHTML = 'Ожидаю ответа сервера...';
}

