JQuery 不更新选择

我有 2 个选择,其中第二个应该根据第一个选择的内容填充。但我无法完全让它发挥作用。


如果我dataType: 'Json'在调用中使用,它会得到一个解析器错误,如果我删除它,我可以让它在测试选择上执行空部分。所以我一定有某种解析错误,我无法将其附加到测试选择中。我该如何解决这些问题?


第一个是这样创建的:


<select

    size="1"

    id="farvestandard"

    name="farvestandard" 

    class="listform ays-ignore" style="width: 155px;">

<?php

  $farveid = $res['r54'];

  $farvesql = "select * from farvekoder group by farvestandard";

  $farvequery = mysql_query("$farvesql") or die(mysql_error);


  while($farverow = mysql_fetch_array($farvequery, MYSQL_ASSOC)) {

      $select = '';

      if ($farverow['farvestandard'] == $res['farvestandard'])

          $select = ' selected';

      ?>

      <option

          value="<?php echo $farverow['farvestandard']; ?>"

          <?php echo $select; ?>>

              <?php echo $farverow['farvestandard']; ?>

      </option>

      <?php

  }

?>

</select>

和第二个,应该根据第一个中的选择填充。


<select name="test" id="test">

  <option value="">-- select one -- </option>

</select>

jQuery 脚本


<script>

  $("#farvestandard").change(function() {

  var farvestandardID = $(this).val();


  if (farvestandardID) {


    $.ajax({

      url: "/farvekoderajax.php",

      dataType: 'Json',

      data: {

        'id': farvestandardID

      },

      success: function(data) {

        console.log("success");

        $('select[id="test"]').empty();

        $('select[id="test"]').append('<option value="">Vælg farvekode</option>');

        $.each(data, function(key, value) {


          $('select[id="test"]').append('<option value="' + key + '">' + value + '</option>');

        });

      },

      error: function(data, error) {

        console.log(arguments);

      }

    });

  }

});

</script>


看不出有什么问题,这就是它应该填充测试的内容。


如果我删除,datatype:json我会收到以下错误:


类型错误:'in' 的右侧应该是一个对象,得到字符串


哈士奇WWW
浏览 191回答 1
1回答

千万里不及你

我不得不像这样将数据解析为 json$.each(JSON.parse(data),&nbsp;function(key,&nbsp;value)&nbsp;{}并在它工作之前删除 datatype:json 。
打开App,查看更多内容
随时随地看视频慕课网APP