【问题标题】:Ajax response as Map Object to bind to HtmlAjax 响应作为映射对象绑定到 Html
【发布时间】:2016-06-18 04:32:30
【问题描述】:

我将结果数据集作为地图对象。我正在使用下面的脚本将数据附加到 Html。但这并没有影响。

$("#district").change(
        function() {
            $('#mandal').html('');
            var district = {
                "district" : $("#district").val()
            };
            $.ajax({
                url : "Reports",
                data : JSON.stringify(district),
                dataType : 'json',
                contentType : 'application/json',
                type : 'POST',
                async : true,
                success : function(res) {
                    console.log(res.resList.length);
                    for ( var i = 0; i < res.resList.length; i++) {
                        console.log("Kalishavali " + res.resList[i]);
                        $('#mandal').append(
                                '<option value=' + res.resList[i] + '>'
                                        + res.resList[i]
                                        + '</option>');
                    }
                }
            });
        });

结果数据格式:

{08=Prakasam, 09=S.P.S Nellore, 04=East Godavari, 05=West Godavari, 06=Krishna, 07=Guntur, 13=Kurnool, 01=Srikakulam, 11=Kadapa, 02=Vizianagaram, 12=Anantapur, 03=Visakhapatnam, 10=Chittoor}

这是我的 Jsp:

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@page import="java.util.ArrayList"%>
<%@taglib prefix="s" uri="/struts-tags" %>
<%@include file="includes/Header_1.html" %>
<script>
$(function() {
$("#district").change(
        function() {
            $('#mandal').html('');
            var district = {
                "district" : $("#district").val()
            };
            $.ajax({
                url : "Reports",
                data : JSON.stringify(district),
                dataType : 'json',
                contentType : 'application/json',
                type : 'POST',
                async : true,
                success : function(res) {
                    console.log(res.resList.length);
                    for ( var i = 0; i < res.resList.length; i++) {
                        console.log("Kalishavali " + res.resList[i]);
                        $('#mandal').append(
                                '<option value=' + res.resList[i] + '>'
                                        + res.resList[i]
                                        + '</option>');
                    }
                }
            });
        });
});
</script>


         <s:select label="District" list="resList" listKey="key" value="value" name="district" headerKey="-1" headerValue="Select District"/>
         Mandal :
    <select id="mandal"></select>

【问题讨论】:

  • 那么你的逻辑有什么问题
  • 似乎无效响应,那不是 json。
  • 代码未附加,这意味着数据未附加到 mandal id 标签.....
  • 响应是 Map 对象
  • 您可以使用 EHTML 将 json 结果映射到 html:github.com/Guseyn/EHTML

标签: javascript java jquery html ajax


【解决方案1】:

响应不是有效的 JSON:

  1. 键值对由=而不是:分隔
  2. 周围没有引号

应该是:

{"08" : "Prakasam", "09" : "S.P.S Nellore" etc...}

【讨论】:

  • 响应是这样的 {08=Prakasam, 09=S.P.S Nellore}
  • 请建议我在哪里可以更改代码以获得正确的结果............
  • 解决问题的最佳方法是更改​​服务器的响应,使其生成有效的 JSON。如果您无法修改服务器端代码,那么您将不得不以其他方式解析响应,例如使用正则表达式,但这是一个不同的问题。
猜你喜欢
  • 1970-01-01
  • 2017-11-03
  • 2019-09-24
  • 2020-08-08
  • 2019-07-22
  • 1970-01-01
  • 1970-01-01
  • 2021-12-03
  • 2011-11-25
相关资源
最近更新 更多