Показать сообщение отдельно
  #1 (permalink)  
Старый 30.01.2013, 15:23
Профессор
Посмотреть профиль Найти все сообщения от imediasun1
 
Регистрация: 23.12.2012
Сообщений: 437

отправка данных в инпут через AJAX
Этот скрипт отправляет данные ajax запроса и записывает их в 2 элемента формы select с именами "maker" и "products" Помогите пожалуйста изменить скрипт так чтобы он записывал данные в селект "maker" (остается без изменения) и в инпут "products"

var request = null;
function createRequest() {
  try {
    request = new XMLHttpRequest();
  } catch (trymicrosoft) {
    try {
      request = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (othermicrosoft) {
      try {
        request = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (failed) {
        request = null;
      }
    }
  }
  if (request == null) alert("Ошибка при создании объекта XMLHttpRequest!");
}

function getList(ctg, mkr) {
  document.getElementById("product").innerHTML = '<option value="0">Выберите</option>';
  if ( mkr == "" )
    url = "../action/getList.php?category=" + ctg;
  else
    url = "../action/getList.php?category=" + ctg + "&maker=" + mkr;
  createRequest();
  request.open("GET", url, true);
  request.onreadystatechange = makeList;
  request.send(null);
}
 
function makeList() {
  // только при состоянии "complete"
  if (request.readyState == 4) {
    // для статуса "OK"
    if (request.status == 200) {
      // здесь идут построение списков заново
      responseXml = request.responseXML;
      xmlDoc = responseXml.documentElement;
      action = xmlDoc.getElementsByTagName("action")[0].firstChild.data;
      options = xmlDoc.getElementsByTagName("options")[0].firstChild.data;
      if ( action == "makeMakerList" )
        document.getElementById("maker").innerHTML = options;
      else
        document.getElementById("product").innerHTML = options;
    } else {
      alert("Не удалось получить данные от сервера:\n" + request.statusText);
    }
  }
}

var request = null;
function createRequest() {
  try {
    request = new XMLHttpRequest();
  } catch (trymicrosoft) {
    try {
      request = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (othermicrosoft) {
      try {
        request = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (failed) {
        request = null;
      }
    }
  }
  if (request == null) alert("Ошибка при создании объекта XMLHttpRequest!");
}

function getList(ctg, mkr) {
  var _select = document.getElementById("product");
  _select.innerHTML = ""; // Удаляем всех потомков
  var option = document.createElement("option");
  var optionText = document.createTextNode("Выберите");
  option.appendChild(optionText);
  option.setAttribute("value", "0");
  _select.appendChild(option);
  if ( mkr == "" )
    url = "../action/getList.php?category=" + ctg;
  else
    url = "../action/getList.php?category=" + ctg + "&maker=" + mkr;
  createRequest();
  request.open("GET", url, true);
  request.onreadystatechange = makeList;
  request.send(null);
}
 
function makeList() {
  // только при состоянии "complete"
  if (request.readyState == 4) {
    // для статуса "OK"
    if (request.status == 200) {
      // здесь идет построение списков заново
      var responseXml = request.responseXML;
      var xmlDoc = responseXml.documentElement;
      var action = xmlDoc.getElementsByTagName("action")[0].firstChild.data;
      if ( action == "makeMakerList" ) {
        _select = document.getElementById("maker");        
      } else {
       _select = document.getElementById("product");
      }
      _select.innerHTML = ""; // Удаляем всех потомков
      options = xmlDoc.getElementsByTagName("option");
      for (var i=0; i<options.length; i++) {
        // Извлекаем значение атрибута value и текст
        var value = options[i].getAttribute("value");
        var text = options[i].firstChild.data;
        // Формируем очередной элемент option
        var option = document.createElement("option");
        var optionText = document.createTextNode(text);
        option.appendChild(optionText);
        option.setAttribute("value", value);
        _select.appendChild(option);
      }
    } else {
      alert("Не удалось получить данные от сервера:\n" + request.statusText);
    }
  }
}
Ответить с цитированием