2017-03-22 74 views
0

我面臨一個問題,我想通過將變量傳遞給它來將我的API鏈接設置爲動態鏈接。我的API是:http://api.fixer.io/latest?symbols=SGD,MYR 現在我想要輸入最後兩個值,即SGD & MYR作爲輸入字段的動態變量。那麼如何做到這一點? 這是我的完整代碼。如何將動態變量添加到API鏈接?

$(function(){ 
 
    $('button').on('click' , function(){ 
 
     var val1 = document.getElementById('value1').value; 
 
     var val2 = document.getElementById('value2').value; 
 

 
     var $records = $('#records'); 
 

 
     $.ajax({ 
 
\t  type: 'GET' , 
 
       url: "http://api.fixer.io/latest?symbols="+val2+","+val1, //value are not coming to the link 
 
       success: function(data) 
 
       { 
 
        console.log(val1);  // values are coming here 
 
\t   console.log(val2);  // values are coming here 
 
      \t var rate1 = data.rates.val1 ; 
 
     \t var rate2 = data.rates.val2 ; 
 
     \t var final = rate1/rate2 ; 
 
     \t $('#records').html ('Total Rate for Above Currency is : ' + final) ; 
 
       } 
 
      }); 
 
     }); 
 
    });
<html> 
 
<head> 
 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
 
</head> 
 
<body align="center"><br/><br/><br/> 
 
<h1> Welcome Currency Convertor </h1> <br/><br/> 
 
Local CCY : <input type="text" id="value1"> <br/><br/> 
 
Hotel CCY : <input type="text" id="value2"> <br/><br/> 
 
<button> Show rate </button> <br/><br/> 
 
<div id="records"> </div> 
 
</body> 
 
</html>

幫助我。提前致謝。

+0

你能不能給我們一個有效的API請求? val1和val2是什麼樣的值? –

+0

如果我在輸入字段1中寫入Rahul,在輸入字段2中寫入sinha,則鏈接將如下所示:「http://api.fixer.io/latest?symbols=Rahul,sinha」, –

+0

有效的API請求:http ://api.fixer.io/latest?symbols = SGD,MYR –

回答

1

試試這個:

$(function() { 
 
    $('button').on('click', function() { 
 
    var val1 = document.getElementById('value1').value; 
 
    var val2 = document.getElementById('value2').value; 
 
    var $records = $('#records'); 
 
    var composedUrl = "http://api.fixer.io/latest?symbols=" + val1 + "," + val2; 
 

 
    console.log(composedUrl); 
 

 
    $.ajax({ 
 
     type: 'GET', 
 
     url: composedUrl, 
 
     success: function(data) { 
 

 
     var rate1 = data.rates[val1]; 
 
     var rate2 = data.rates[val2]; 
 

 
     console.log(rate1); 
 
     var final = rate1/rate2; 
 
     $('#records').html('Total Rate for Above Currency is : ' + final); 
 
     } 
 
    }); 
 
    }); 
 
});
<html> 
 

 
<head> 
 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
 
</head> 
 

 
<body align="center"><br/><br/><br/> 
 
    <h1> Welcome Currency Convertor </h1> <br/><br/> Local CCY : <input type="text" id="value1"> <br/><br/> Hotel CCY : <input type="text" id="value2"> <br/><br/> 
 
    <button> Show rate </button> <br/><br/> 
 
    <div id="records"> </div> 
 
</body> 
 

 
</html>

+0

是的,偉大的工作對我來說,但也有一件事剩餘。 var rate1 = data.rates.val1;通過這樣做 - > console.log(rate1);它顯示未定義。但是當我寫var rate1 = data.rates.MYR;它提供了價值。爲什麼這不是給那個價值? –

+1

我更新了代碼。您正在使用val1和val2引用對象鍵,並試圖在對象上找到實際上是「SGD」和「MYR」的鍵。檢查更改:'var rate1 = data.rates [val1];'而不是'var rate1 = data.rates.val1;'將會發揮作用。 –

+0

哦!對不起,現在它正在工作..謝謝 –

0

您應該刪除過去的+,就像這樣:

url: "http://api.fixer.io/latest?symbols="+val1+","+val2, 

因爲沒有東西后。 現在期望另一個變量或字符串,但有沒有

+0

是的,它可以工作,但是當我將變量傳遞給API鏈接時,它們沒有在輸入字段中使用鏈接中的值。 –

+1

url:「http://api.fixer.io/latest?symbols="+val1+","+val2,在這個值不會到達網址。這個怎麼做 ? –