Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.03.2015, 14:03   #1
mrdemkin
Пользователь
 
Регистрация: 02.10.2013
Сообщений: 15
По умолчанию Работа с ems api: корректная работа только при явном указании города

Здравствуйте! Есть такой код, для работы с ems api (http://www.emspost.ru/ru/corp_client...docements/api/)

PHP код:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html xmlns="http://www.w3.org/1999/xhtml">
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<
title>Untitled Document</title>
<
script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(function(){
$.ajax({
    url: "http://emspost.ru/api/rest/",
    dataType : "jsonp",
    data: ({
        method:"ems.get.locations",
        type:"cities",
        plain:"true"
    }),
    success: function (data) {
    for (i=0;i<data.rsp.locations.length;i++){
        var output="<option>"+data.rsp.locations[i].value.replace('city--','');
        $("#otpravka,#priem").append(output);
    }
    }
});
$.ajax({
    url: "http://emspost.ru/api/rest/",
    dataType : "jsonp",
    data: ({
        method:"ems.get.max.weight"
    }),
    success: function (data) {
        $("#max_weight").append(data.rsp.max_weight+" кг");
    }
});
$("#calc").click(function(){
    $.ajax({
            url: "http://emspost.ru/api/rest/",
            dataType : "jsonp",
            data: ({
            method:"ems.calculate",
            from: "city--"+$("#otpravka option:selected"),
            to: "city--"+$("#priem option:selected"),
            weight:$("#weight").val()
            }),
        success: function (data) {
        if (data.rsp.stat=="fail"){
            $("#rez").empty().append("Неправильный вес");
        }
        else {
            $("#rez").empty().append("Цена доставки: "+data.rsp.price);
        }
        }
        });
});
});
</script>
</head>
 
<body>
<select id="otpravka">
</select>
<select id="priem">
</select><br />
<div id="max_weight">Максимальный возможный вес:  </div>
<br />
Вес доставки: <input id="weight" type="text" value=""/>
<button id="calc">Рассчитать стоимость</button><br />
<div id="rez"></div>
</body>
</html> 
Скрипт не работает. Проходит только запрос на max.weight. Google Chrome выдает такое:

PHP код:
ht tp://emspost. ru/api/rest/?callback=jsonp1425265528883&method=ems.calculate&from=city--%5Bobject+Object%5D&to=city--%5Bobject+Object%5D&weight=2 
Вижу что проблема в "city--%5Bobject+Object%5D". С jQuery я практически не знаком, так что сам справиться не могу. Прошу либо указать что тут не так, либо направить как это сделать без jQuery (надо самому понять и разобраться).

Сделал так:

PHP код:
//...
 
$("#calc").click(function(){
    $.
ajax({
            
url"http://emspost.ru/api/rest/",
            
dataType "jsonp",
            
data: ({
            
method:"ems.calculate",
            
from"city--abakan",//+$("#otpravka option:selected"), //было selected
            
to"city--moskva",//+$("#priem option:selected"),
            
weight: $("#weight").val()
            }),
 
//... 
Тогда запрос проходит, все считает. Пытаюсь разобраться.
mrdemkin вне форума Ответить с цитированием
Старый 02.03.2015, 14:08   #2
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,150
По умолчанию

ну так и получайте значение .. зачем весь объект?
Код:
   from: "city--"+$("#otpravka option:selected").val(),
ADSoft вне форума Ответить с цитированием
Старый 02.03.2015, 14:09   #3
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,150
По умолчанию

для to - аналогично
ADSoft вне форума Ответить с цитированием
Старый 02.03.2015, 18:23   #4
mrdemkin
Пользователь
 
Регистрация: 02.10.2013
Сообщений: 15
По умолчанию

Цитата:
Сообщение от ADSoft Посмотреть сообщение
ну так и получайте значение .. зачем весь объект?
Код:
   from: "city--"+$("#otpravka option:selected").val(),
Слона-то я и не приметил...

Спасибо за помощь, все работает!
mrdemkin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не корректная работа программы heret1c Помощь студентам 2 17.05.2014 23:50
Не корректная работа INDY10 в Delphi 2010 Virus25 Работа с сетью в Delphi 8 04.05.2013 14:53
Как при указании типа переменной сослаться на файл? fezilk25 Общие вопросы Delphi 1 25.04.2013 23:45
Не корректная работа Darth_Vader C# (си шарп) 2 20.05.2012 07:52
mingw32-g++ и msvs6 не корректная работа fstream под windows Asain-Asa Общие вопросы C/C++ 1 18.11.2009 00:06