Как получить больше данных.значений с помощью ajax-вызова?

#ajax #asp-classic

#ajax #asp-classic

Вопрос:

У меня есть файл asp, который вызывается с помощью Ajax-вызова, и я хочу получить для значений строку (ответ) и целое число (iNumberOfSomething). Значение «ответ» уже работает. Но как я могу добавить целочисленное значение в свой ajax-вызов, чтобы я мог использовать целочисленное значение?

 myAjax.asp
...
sSQL = "dbo.MyFunction"

set oRs = MyFunction(sSQL)

if not oRs.eof then
    iNumberOfSomething = cdbl(oRs("setting"))
end if
...
response.write "MyValue"
 

Мой ajax-вызов:

 $.ajax({
  cache: false,
  type: "POST",
  url: 'myAjax.asp',
  data: {
     Value1: value.toString(),
     MyId: '<%= ID %>',
  },
  dataType: "json",
  success: function(data) {
  var sMessage = '';
  ...
  if (data == "MyValue") {
    ...
  }

  if (data.iNumberOfSomething === 1) {
    ...
  }
 

Ответ №1:

У вас есть несколько вариантов. Вы можете либо изменить свой сценарий ASP, чтобы возвращать JSON или XML, либо внести более простое изменение, чтобы возвращать результат в виде списка, разделенного запятыми (или табуляцией, или каким-либо другим разделителем). Вот пример того, как выполнить более поздний вариант.

 myAjax.asp
...
sSQL = "dbo.MyFunction"

set oRs = MyFunction(sSQL)

if not oRs.eof then
    iNumberOfSomething = cdbl(oRs("setting"))
end if
...
response.write "MyValue,AnotherValue,YetAnotherValue" 'Changed this line
 

И ваш ajax-вызов:

 $.ajax({
  cache: false,
  type: "POST",
  url: 'myAjax.asp',
  data: {
     Value1: value.toString(),
     MyId: '<%= ID %>',
  },
  dataType: "json",
  success: function(data) {
  var sMessage = '';
  ...

  //New code added here
  var results = data.split(",");

  if (results[0] == "MyValue") {
    ...

    alert(results[1]);
    alert(results[2]);
  }

  if (data.iNumberOfSomething === 1) {
    ...
  }
 

В зависимости от ваших потребностей вы, вероятно, захотите установить еще несколько проверок, чтобы убедиться, что появилось правильное количество значений.

Если вы хотите использовать маршрутизатор JSON, вы можете использовать что-то вроде ASPJSON