Я хочу показать несколько значений при изменении текстового поля одной формы. Я могу сделать это для одного поля, но я не могу сделать это для нескольких полей. Если я повторяю несколько значений через 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);
}
}
Смутный ответ на неопределенный вопрос:
Удалено фрагмент кода
Обновить:
Это зависит от способа форматирования вашего 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>
вашей страницы.