Конвертер валют с JSONp

0

У меня возникают трудности с JSONP и моим конвертером валют, который я пытаюсь построить. Я предполагаю, что это нечто настолько простое, что я все еще очень новичок в программировании и т.д.

У меня есть HTML, в котором пользователь может ввести номер, в который они хотят конвертировать, и выбрать из двух и двух валют. Когда они нажимают на конвертацию, появляется сообщение о загрузке, но ничего больше не происходит. Любая помощь очень важна!

JQuery:

$(function() {
$('#btnConvert').click(function() {

$('#result').html('Loading...');

var amount = $('#amount').val();
var from = $('#from').val();
var to = $('#to').val();

$.ajax({ type: "GET",
    url: "http://rate-exchange.appspot.com/currency?$from"+from+"&to="+to+"&q="+amount+"",
    dataType: "jsonp",
    success: function() {
        $('#result').html();
    }
});
});
});

Вот раздел тела моего HTML:

 <form id="form1" runat="server">
 <table>
 <tr><td align="right">Enter Amount:</td><td>  <input id="amount" maxlength="12" size="5" value="1" /></td></tr>
 <tr><td align="right">From:</td><td>
<select id="from">
<option value="AED">United Arab Emirates Dirham (AED)</option>
<option value="ANG">Netherlands Antillean Guilder (ANG)</option>
<option value="BWP">Botswanan Pula (BWP)</option>
<option value="HKD">Hong Kong Dollar (HKD)</option>
<option value="HNL">Honduran Lempira (HNL)</option>
<option value="HRK">Croatian Kuna (HRK)</option>
<option value="HUF">Hungarian Forint (HUF)</option>
<option value="IDR">Indonesian Rupiah (IDR)</option>
<option value="ILS">Israeli New Sheqel (ILS)</option>
<option value="MAD">Moroccan Dirham (MAD)</option>
<option value="MDL">Moldovan Leu (MDL)</option>
<option value="MKD">Macedonian Denar (MKD)</option>
<option value="MUR">Mauritian Rupee (MUR)</option>
<option value="MVR">Maldivian Rufiyaa (MVR)</option>
<option value="MXN">Mexican Peso (MXN)</option>
<option value="MYR">Malaysian Ringgit (MYR)</option>
<option value="NAD">Namibian Dollar (NAD)</option>
<option value="TTD">Trinidad and Tobago Dollar (TTD)</option>
<option value="TWD">New Taiwan Dollar (TWD)</option>
<option value="TZS">Tanzanian Shilling (TZS)</option>
<option value="UAH">Ukrainian Hryvnia (UAH)</option>
<option value="UGX">Ugandan Shilling (UGX)</option>
<option value="USD" selected>US Dollar (USD)</option>

</select></td>
</tr>
<tr> <td align="right">to:</td><td>
<select id="to">
<option value="AED">United Arab Emirates Dirham (AED)</option>
<option value="ANG">Netherlands Antillean Guilder (ANG)</option>
<option value="ARS">Argentine Peso (ARS)</option>
<option value="AUD">Australian Dollar (AUD)</option>
<option value="EGP">Egyptian Pound (EGP)</option>
<option value="EUR">Euro (EUR)</option>
<option value="FJD">Fijian Dollar (FJD)</option>
<option value="GBP">British Pound Sterling (GBP)</option>
<option value="HKD">Hong Kong Dollar (HKD)</option>
<option value="HNL">Honduran Lempira (HNL)</option>
<option value="HRK">Croatian Kuna (HRK)</option>
<option value="HUF">Hungarian Forint (HUF)</option>
<option value="IDR">Indonesian Rupiah (IDR)</option>
<option value="ILS">Israeli New Sheqel (ILS)</option>
<option value="INR" selected>Indian Rupee (INR)</option>
<option value="JMD">Jamaican Dollar (JMD)</option>
<option value="JOD">Jordanian Dinar (JOD)</option>
<option value="JPY">Japanese Yen (JPY)</option>
<option value="MVR">Maldivian Rufiyaa (MVR)</option>
<option value="MXN">Mexican Peso (MXN)</option>
<option value="MYR">Malaysian Ringgit (MYR)</option>
<option value="NAD">Namibian Dollar (NAD)</option>
<option value="NGN">Nigerian Naira (NGN)</option>
<option value="NIO">Nicaraguan Córdoba (NIO)</option>
<option value="NOK">Norwegian Krone (NOK)</option>
<option value="NPR">Nepalese Rupee (NPR)</option>
<option value="NZD">New Zealand Dollar (NZD)</option>
<option value="OMR">Omani Rial (OMR)</option>
<option value="PEN">Peruvian Nuevo Sol (PEN)</option>
<option value="PGK">Papua New Guinean Kina (PGK)</option>
<option value="PHP">Philippine Peso (PHP)</option>
<option value="PKR">Pakistani Rupee (PKR)</option>
<option value="PLN">Polish Zloty (PLN)</option>
<option value="PYG">Paraguayan Guarani (PYG)</option>
<option value="QAR">Qatari Rial (QAR)</option>
<option value="RON">Romanian Leu (RON)</option>
<option value="RSD">Serbian Dinar (RSD)</option>

</select></td></tr>
<tr><td></td><td> <input id="btnConvert" type="button" value="Convert"  style="padding:5px;      10px;"/></td></tr>
</table>
<div >
<div id="result" style="padding: 2px; margin: 5px; font-size:20pt">
</div>
</div>
<br />
</form>


<!-- jQuery hosted by google version 2.0.3-->    
<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>

<script src="test_2.js"></script>

Обновление: я думаю, что я куда-то! Когда я использую инструменты разработчика, URL-адрес получателя теперь корректен... но он все еще не работает. Blah $ (document).ready(function() {$ ('# btnConvert'). Click (function() {

        $('#result').html('Loading...');

    var amount = $('#amount').val();
    var from = $('#from').val();
    var to = $('#to').val();
    var value = [];

    $.ajax({
        type: "GET",
        url: "http://rate-exchange.appspot.com/currency?from=" + from + "&to=" + to + "&q=" + amount + "&callback=success",
        dataType: "jsonp",
        jsonp: false,
        cache: true,
        success: function success(resp) {
            $('#result').html(resp.v);

        }
    });
});
});


Еще одно обновление - как я куда-то...

$(document).ready(function () {
$('#btnConvert').click(function () {

    $('#result').html('Loading...');

    var amount = $('#amount').val();
    var from = $('#from').val();
    var to = $('#to').val();




    $.ajax({
        type: "GET",
        url: "http://rate-exchange.appspot.com/currency?from=" + from + "&to=" + to + "&q=" + amount + "&callback=function",
        dataType: "jsonp",
        jsonp: false,
        cache: true,
        success: function(resp) {
            document.getElementById('#result').innerHtml=resp.v;
        }


    });
});
});

Поэтому, когда я проверяю это, я получаю ответ (в Инструментах разработчика): function ({"to": "EUR", "rate": 0.72894899999999996, "from": "USD", "v": 0.72894899999999996} )

Это то, что я хочу, но я не знаю, как отображать "v"... Я пробовал resp.v или data.v, но он не покажет...

  • 0
    Firebug - ваш друг, так что вы можете наблюдать за тем, как ходят и возвращаются запросы и т. Д.
Теги:
jsonp

3 ответа

0

Это нормально. Вы можете попробовать это......

$('#result').val('Loading...');

var amount = $('#amount').val();
var from = $('#from').val();
var to = $('#to').val();



 $.ajax({
     type: "GET",
       url: "http://free.currencyconverterapi.com/api/v5/convert?q=" + from + "_" + to +"&compact=y",
    success: function(data) {
        var exchangeRate = JSON.stringify(data).replace(/[^0-9\.]/g,'');

        var result = amount*exchangeRate;
           $('#result').val(parseFloat(result).toFixed(2));
        }
    });

});
0

Это то, что должна выглядеть ваша функция ajax -

$.ajax({ 
    type: "GET",
    url: "http://rate-exchange.appspot.com/currency?from="+from+"&to="+to+"&q="+amount,
    dataType: "jsonp",
    success: function(resp) {
        $('#result').html(resp.v);
    }
});

Вы не должны указывать имя функции обратного вызова в URL-адресе. JQuery сделает это автоматически.

  • 0
    Ну, это просто глупо! «Респ» должен что-то значить. Я изменил свою функцию успеха так, как вы это показываете, и она все еще загружается ... и загружается ...
0

Во-первых, у вас есть дополнительный символ, в результате чего ваш запрос недействителен ?$from should be ?from.

html() без аргументов получает только html, вы ничего не устанавливаете. Попробуй это:

success: function(resp) {
    $('#result').html(resp.v);
}

Если это не правильный способ получить свойство v из resp, попробуйте resp["v"] или что-то еще.

  • 0
    Все еще не работает :( Я попробовал именно то, что вы сказали, и это не сработало. Я также попытался использовать data.v, data. [V], data. ["V"], и я не смог получить его ,
  • 0
    Вы пробовали, как предложил Марк, и использовали Firebug, чтобы попытаться отладить это? Если это так, и вы все еще застряли, дайте нам знать, что вы найдете.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню