2012-01-15 68 views
-3

我想在一个表单文本字段的变化上显示多个值。我可以做一个领域,但我不能做多个领域。如果我通过AJAX回显多个值,它们会显示在单个文件夹中,或者我在getElementById中提到的每个字段中显示。如何通过AJAX在多个字段中显示值?

我用这个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可以提取单个值并将它们设置在相应的字段中。 – nnnnnn 2012-01-15 05:59:29

+0

AJAX responseText是什么样的?你有没有考虑过使用[JSON](http://www.json.org/)(或另一种数据交换格式)? – PPvG 2012-01-15 09:46:28

回答

0

一个含糊不清的问题一个模糊的答案:

代码片段中删除

更新:

这取决于您的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 { 

    // ... 

不要忘了在你的页面的<head>加载json2.js

相关问题