Как прочитать значение JSON ответа в JQuery - PullRequest
0 голосов
/ 21 февраля 2012

Это часть скрипта одного из моих виджетов на веб-сайте. В любом случае, когда текстовые поля класса «inp» имеют измененное значение, код отправляет все параметры в веб-сервис, который просматривает базу данных и возвращает записи как json.My проблема я не знаю, как получить значения в ответе json. Я пытаюсь добавить новые div в res12 div в качестве результатов, которые должны поступить из json. Я смог создать div, но значения не определены, а также скрипт выполняется для нескольких раз, и я не понимаю, почему. Мне нужна ваша помощь. Спасибо заранее. ответ JSON

[{"description": "отправлено на встречу", "date": "19.02.2012 21:34:26", "lid": "6", "companyname": "M & L", "personname" : "jack ferrel", "email": "jacky@ml.com", "fax": "123123", "phone": "345345", "industryname": "finance", "teamname": "w12et", "sender": "jack ferrel", "statusname": "Ожидает"}]

   <script type="text/javascript">

          var typingTimer;               
          var doneTypingInterval = 5000;
          $(document).ready(function () {
              $(".inp").keyup(function () {
                    typingTimer = setTimeout(doneTyping, doneTypingInterval);
                });
                $(".inp").keydown(function () {
                    clearTimeout(typingTimer);
                });

            });

            function doneTyping() {
                $.ajax({
                    type: "POST",
                    url: "letter.ashx",
                    data: { CompanyName: $("#<%=TextBox1.ClientID%>").val(), PersonName: $("#<%=TextBox3.ClientID%>").val(), Email: $("#<%=TextBox5.ClientID%>").val() },
                    dataType: "application/json",
                    success: function (msg) {

                        var newdiv = $('<div class="e"><div></div><div>'+CompanyName+'</div><div>'+Sender+'</div><div>1</div><div>2</div></div> ');

                        $('#res12').append(newdiv);
                    }
                });
            }
        </script>

1 Ответ

2 голосов
/ 21 февраля 2012

Вы видите undefined в новых div, созданных, потому что CompanyName и Sender не определены. Если они являются частью ответа ajax, то вы используете msg.CompanyName и msg.Sender. Попробуйте это.

        function doneTyping() {
            $.ajax({
                type: "POST",
                url: "letter.ashx",
                data: { CompanyName: $("#<%=TextBox1.ClientID%>").val(), PersonName: $("#<%=TextBox3.ClientID%>").val(), Email: $("#<%=TextBox5.ClientID%>").val() },
                dataType: "application/json",
                success: function (msg) {

                    var newdiv = $('<div class="e"><div></div><div>'+msg.CompanyName+'</div><div>'+msg.Sender+'</div><div>1</div><div>2</div></div> ');

                    $('#res12').append(newdiv);
                }
            });
        }

Обновление:

json, который вы разместили в вопросе, имеет companyname, а не CompanyName, то же самое для sender. Помните, что JavaScript чувствителен к регистру, поэтому вы должны использовать companyname и sender в своем коде, чтобы получить значения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...