Javascript jQuery AJAX调用返回[object]
我正在为一个网站进行股票交易所jQuery修复 编辑:它根据返回的值更新网页上的ID/类或输入值 index.php:Javascript jQuery AJAX调用返回[object],javascript,jquery,html,ajax,Javascript,Jquery,Html,Ajax,我正在为一个网站进行股票交易所jQuery修复 编辑:它根据返回的值更新网页上的ID/类或输入值 index.php: <!doctype html> 我还尝试使用.text()将其返回到div demo.json: { "currency" : [ { "name" : "South Africa", "code" : "ZAR", "amount" : 0.14 }, { "name" : "America", "co
<!doctype html>
我还尝试使用.text()将其返回到div
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
}
] }
有人能告诉我我做错了什么吗
提前谢谢 [object]基本上是一个数组 请尝试以下代码:
success: function( resp ) {
//$( '#div' ).val( resp.currency[0].amount );
alert(JSON.stringify(resp));
},
这将向您显示阵列,它将使您能够更好地选择要输出的元素您可以执行以下操作:
// 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);
});
因此,这里的主要问题是:-
- 您需要在ajax成功回调中执行所有的
逻辑,因为ajax是结果
,并且总是为异步的
和结束
变量获取空值李>新结束
- 无需执行此操作
result=$(end*newend)代码>因为它创建了一个新的jQuery对象实例,因此您将获得
[object object]
var end = parseInt($('#value').val());
var newend = parseInt($('#div').val());
var result = $( end * newend );
正在ajax调用成功之前进行评估。它需要移动到成功块中您正在计算
$()
使用类似以下代码的for循环:
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script>
$( "select[name='continue[matiere]']" ).change(function () {
var matiereID = $(this).val();
if(matiereID) {
$.ajax({
url: "{{ path('ajaxform') }}",
dataType: 'Json',
data: {'id':matiereID},
type:'POST',
success: function(data) {
$('select[name="continue[chapitre]"]').empty();
for(i = 0; i < data.length; i++) {
student = data[i];
$('select[name="continue[chapitre]"]').append('<option value="'+ student['id'] +'">'+ student['nom'] +'</option>');
};
}
});
}else{
$('select[name="continue[chapitre]"]').empty();
}
});
</script>
$(“选择[name='continue[matiere]'])。更改(函数(){
var matiereID=$(this.val();
if(matiereID){
$.ajax({
url:“{path('ajaxform')}}”,
数据类型:“Json”,
数据:{'id':matiereID},
类型:'POST',
成功:功能(数据){
$('select[name=“continue[chapitre]”)。empty();
对于(i=0;i
尝试使用console.log(resp)
,这会带来什么。向我们展示响应,然后我们可以帮助您。我们可以查看demo.json
页面的源代码吗?您是否尝试过console.log(resp)代码>?这意味着,resp.currency[0]。amount
实际返回一个对象。尝试使用console.log(resp.currency[0].amount)
解决问题,然后检查数据/对象返回的内容是否正常。您的对象似乎没有问题。谢谢大家的评论和帮助@palash我已将其应用到我的文件中,并得到未捕获的TypeError:无法读取console.log(resp.d.currency[0].amount)上未定义的属性“currency”@Vaughthomas Ok这只是出于测试/调试的目的,您可以删除所有console.log
code..JSON.stringify(resp)
之后,我得到一个对象。那我该怎么办?
// 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);
});
var end = parseInt($('#value').val());
var newend = parseInt($('#div').val());
var result = $( end * newend );
var end = parseInt($('#value').val());
var newend = parseInt($('#div').val());
var result = end * newend; // this $(end * newend) is probably what was wrong
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script>
$( "select[name='continue[matiere]']" ).change(function () {
var matiereID = $(this).val();
if(matiereID) {
$.ajax({
url: "{{ path('ajaxform') }}",
dataType: 'Json',
data: {'id':matiereID},
type:'POST',
success: function(data) {
$('select[name="continue[chapitre]"]').empty();
for(i = 0; i < data.length; i++) {
student = data[i];
$('select[name="continue[chapitre]"]').append('<option value="'+ student['id'] +'">'+ student['nom'] +'</option>');
};
}
});
}else{
$('select[name="continue[chapitre]"]').empty();
}
});
</script>