Как показать значение в нескольких полях через AJAX?

-4

Я хочу показать несколько значений при изменении текстового поля одной формы. Я могу сделать это для одного поля, но я не могу сделать это для нескольких полей. Если я повторяю несколько значений через AJAX, они отображаются в одном файле или каждом поле, упомянутом в getElementById.

Я использовал этот JavaScript:

function iteminfo(vid) {

    var strURL = "item_info.php?id1=" + vid;

    var req = getXMLHTTP();
    if (req) {

        req.onreadystatechange = function() {
            if (req.readyState == 4) {
                // only if "OK"
                if (req.status == 200) {
                    document.getElementById('pro_info1').innerHTML=req.responseText;
                } else {
                    alert("There was a problem while using XMLHTTP:\n" + req.statusText);
                }
            }
        }
        req.open("GET", strURL, true);
        req.send(null);
    }
}
  • 1
    Покажите свой существующий код. Самый простой способ (по моему мнению) состоит в том, чтобы ваш сервер возвращал некоторый JSON, а затем ваш JS может извлечь отдельные значения и установить их в соответствующих полях.
  • 0
    Как выглядит AJAX responseText? Рассматривали ли вы использовать JSON (или другой формат обмена данными)?
Теги:

1 ответ

0

Смутный ответ на неопределенный вопрос:

Удалено фрагмент кода

Обновить:

Это зависит от способа форматирования вашего responseText AJAX responseText. Я предполагаю, что он содержит разные значения для разных полей (например, pro_info1, pro_info2 и т.д.) И что каждое значение должно использоваться для обновления соответствующего поля.

В таких случаях рекомендуется использовать формат обмена данными. JSON является общим выбором для большинства сообщений AJAX. Отформатируйте ответ item_info.php следующим образом:

{ 'pro_info1': 'Value 1', 'pro_info2': 'Value 2' }

Затем обновите свой JavaScript, чтобы проанализировать и обработать ответ, например:

// ...

if (req.status == 200) {
    var response = JSON.parse(req.responseText);
    for (var fieldName in response) {
        var field = document.getElementById(fieldName);
        if (field !== null) {
            field.innerHTML = response[fieldName];
        }
    }
} else {

    // ...

Не забудьте загрузить json2.js в <head> вашей страницы.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню