I am working on a Stock Exchange jQuery fix for a website.
EDIT: It updates a ID/CLASS or input value on the webpage depending on the value returned.
index.php:
<!doctype html>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<meta charset="utf-8">
<title>load demo</title>
<script type="text/javascript">
$(document).ready(function() {
$.ajax({
url: '/datacall/demo.json',
dataType: 'json',
success: function( resp ) {
$( '#div' ).val( resp.currency[0].amount );
},
error: function( req, status, err ) {
console.log( 'Something went wrong', status, err );
}
});
var end = parseInt($('#value').val());
var newend = parseInt($('#div').val());
var result = $( end * newend );
$('#clickme').click(function() {
$('#new').val( result );
});
});
</script>
<div>
<input type="hidden" value="2500" id="value" />
<input type="hidden" value="" id="div">
<input type="text" id="new" value="" readonly/>
<input type="button" value="Change" id="clickme" />
</div>
Currently it is returning:
[object Object]
I have also tried returning it to a div with .text()
demo.json:
{ "currency" : [
{
"name" : "South Africa",
"code" : "ZAR",
"amount" : 0.14
},
{
"name" : "America",
"code" : "USD",
"amount" : 0.64
},
{
"name" : "Europe",
"code" : "GBP",
"amount" : 1.29
}
] }
Please can someone tell me what I did wrong.
Thanks in advance!
You can do this:
// Create some global variables
var end = parseInt($('#value').val(), 10);
var newend = 0;
var result = 0;
$.ajax({
url: '/datacall/demo.json',
dataType: 'json',
success: function (resp) {
// Check the values in console
console.log(resp.currency[0].amount);
console.log(resp.d.currency[0].amount);
$('#div').val(resp.currency[0].amount);
newend = parseInt(resp.currency[0].amount, 10);
result = end * newend;
// No need to create a new jQuery object using $()
// result = $( end * newend );
},
error: function (req, status, err) {
console.log('Something went wrong', status, err);
}
});
$('#clickme').click(function () {
$('#new').val(result);
});
So the main issues here is:-
result
logic in the ajax success callback, as ajax is asynchronous
and you always get the empty values for the end
& newend
variables. result = $( end * newend );
as it creates a new jQuery object instance and hence you are getting [object Object]
[object Object] is basically an array
Try this code:
success: function( resp ) {
//$( '#div' ).val( resp.currency[0].amount );
alert(JSON.stringify(resp));
},
This should show you the array, which will give you the ability to better select the elements to output
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With