Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery AJAX调用返回[object]_Javascript_Jquery_Html_Ajax - Fatal编程技术网

Javascript jQuery AJAX调用返回[object]

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

我正在为一个网站进行股票交易所jQuery修复

编辑:它根据返回的值更新网页上的ID/类或输入值

index.php:

<!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>