JQuery $ .ajax и работа с набором результатов - PullRequest
0 голосов
/ 22 июня 2009

У меня есть следующее

 $.ajax({        
  type: "POST",        
  url: "qry_invControl.cfm",        
  data: "p_sales_price=" + input.val() + "&action=getCashPrice",
  cache: false,       
  success: function(data) {    
     $("#cashPrice_"+num).html(data);       
  }    
  });

Мне нужно изменить свой qry_invControl.cfm, чтобы он возвращал другие вещи, такие как условия, ежемесячный платеж, кроме cashPrice. Как мне изменить мою функцию успеха, чтобы я мог сделать что-то вроде:

 $("#cashPrice_"+num).html(data.cashPrice);
 $("#terms_"+num).html(data.terms);
 $("#monthlyPayment_"+num).html(data.monthlyPayment);

Мне нужно будет заполнить другие элементы div, чтобы показать соответствующие данные (условия, monthPayment) одним вызовом ajax, который будет поступать из qry_invControl.cfm.

Ответы [ 4 ]

8 голосов
/ 22 июня 2009

Укажите тип данных как JSON.

$.ajax({        
  dataType: 'json', 
  type: "POST",        
  url: "qry_invControl.cfm",        
  data: "p_sales_price=" + input.val() + "&action=getCashPrice",
  cache: false,       
  success: function(data) {    
    $("#cashPrice_"+num).html(data.cashPrice);
    $("#terms_"+num).html(data.terms);
    $("#monthlyPayment_"+num).html(data.monthlyPayment);     
  }    

});

На странице CFM вы можете вывести JSON с функцией SerializeJSON () .

<cfset data = structNew()>
<cfset data.cashPrice = 4.50> 
<cfset data.terms = 2>
<cfset data.monthlyPayment= 50>
<cfoutput>#serializeJSON(data)#</cfoutput>
1 голос
/ 22 июня 2009

Лучшее решение состоит в том, чтобы ваш скрипт отформатировал возвращаемые данные как json и добавил

dataType:'json',

к вашей настройке jQuery ajax. Добавление этой строки заставляет jQuery автоматически анализировать строку json в объект javascript. Оттуда вы можете делать именно то, что вы хотите: data.cashPrice, data.terms и т. Д.

1 голос
/ 22 июня 2009

Вы хотите вернуть данные в виде объекта JSON:

{ cashPrice: 4.50, terms: 2, monthlyPayment: 50 }

Вы также можете указать dataType: "json" в вашем вызове $ .ajax, чтобы jQuery автоматически обрабатывал возвращаемое значение как JSON. Убедитесь, что вы используете кавычки вокруг любых нечисловых значений (2,50 - это хорошо, $ 2,50 - кавычки).

1 голос
/ 22 июня 2009

Вы должны проверить передачу данных обратно через JSON . Для этой цели в jQuery имеется функция .getJSON .

JSON учебник.

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