Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.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选择的下拉列表值_Javascript_Php_Jquery - Fatal编程技术网

Javascript 更新使用jQuery选择的下拉列表值

Javascript 更新使用jQuery选择的下拉列表值,javascript,php,jquery,Javascript,Php,Jquery,PHP,JavaScript组合。 我有一个网站有4个下拉列表。下拉列表将根据以前的下拉列表按顺序更新。 当我手动选择选项时效果很好,但当我从MySQL记录中填充默认值时效果就不好了。 带有2个下拉列表的Codesnip,其中下拉列表2基于下拉列表1的选择,请参见前三行中的注释: jQuery('#ClassLevelID').val(data["ClassMin"]); //First dropdown ClassLevelOnChange(); // Calls DB a

PHP,JavaScript组合。 我有一个网站有4个下拉列表。下拉列表将根据以前的下拉列表按顺序更新。 当我手动选择选项时效果很好,但当我从MySQL记录中填充默认值时效果就不好了。 带有2个下拉列表的Codesnip,其中下拉列表2基于下拉列表1的选择,请参见前三行中的注释:

jQuery('#ClassLevelID').val(data["ClassMin"]); //First dropdown
ClassLevelOnChange(); // Calls DB and gets new values. One value is "4" (i checked that)
jQuery('#CatID').val(4); // Trying to update dropdown 2 to value "4" but nothing happens THIS is what doesn't work properly.
// The #CatID dropdown is filled with values correctly, i see them all. But jQuery does not change from option value 0 to 4 as i want it to.



function ClassLevelOnChange(){

  jQuery('#CatID').find('option').remove();
  jQuery('#CatID').append('<option value="0">Choose option</option>');

  var SelectedClassLevel = document.getElementById("ClassLevelID").value;

  jQuery.ajax({
        type: 'POST',
        url: 'includes/db_GetCategory.php',
        data: {"SelectedClassLevel":SelectedClassLevel},
        success: function(result){

            var result=jQuery.parseJSON(result);
            var x = 0;

            jQuery.each(result.class_id, function(index, value){
              ClassName = result.class_text[x];
              jQuery('#CatID').append('<option value="' + value + '">' + ClassName + '</option>');
              x = x + 1;
            });
        }
        });

}

我尝试了一些刷新,但没有结果。

这是否回答了您的问题?您好,您是否尝试过在ajax的成功函数中添加这一行?是时候回顾一下ajax中的a的含义了-您正在尝试在ajax完成之前设置.val4,因此还不存在。当您看到它们时,都是在ajax完成之后。在classlevelonchange之前/之后以及在success中的代码中添加一些console.log将向您显示发生了什么。@freedomn-m不,它没有。因为ajax工作得很好。第二个列表充满了选项。我就是不能用jQuery选择选项。我可以用鼠标选择这个选项。。。我还怀疑ajax在继续之前还没有完成。有没有办法等待ajax?我试着让它在ajax调用和jQuery插入之间休眠1秒,但没有成功。@Swati-Woops,这确实有帮助。因此,这是一个异步问题。问题是我需要它以块/顺序运行。我会看看我是否能重新安排代码。但是没有比等待ajax更聪明的方法了吗?所以我不需要把所有的代码都放在ajax中?