2016-03-03 163 views
0

我使用Ajax使用PHP返回的数组中的值填充选择的html元素。Ajax选择即时更改默认值

Ajax代码:

<script type = "text/javascript"> 
    $(document).ready(function(){ 
     $('#fds_categories').change(function() { 
      var template_id = $(this).val(); 

      $.ajax({ 
       type: "POST", 
       data: { 
        'username' : '<?php echo $user->username; ?>', 
        'categorie_id' : template_id 
       }, 
       url: "ajax/fds_template_ajax.php", 
       success: function(data){ 
        $('#fds_price').empty(); 
        $.each($.parseJSON(data), function(index, element) { 
         if(element.p == 0){ 
          $('#fds_price').append(
           $('<option data-icon="man"></option>').val(element.id).html(element.name + ' Price: ' + element.pb + ' Zcard') 
          ); 
         }else{ 
          $('#fds_price').append(
           $('<option data-icon="man"></option>').val(element.id).html(element.name + ' Price: ' + element.p + ' Bucks') 
          ); 
         } 
        }); 
       } 
      }); 
     }); 
    }); 
</script> 
在那里

可悲的值不会改变选择元素的默认预览值。

例子:

GIF图像:https://gyazo.com/6aab1545ff143536c17e97eb5ef6315a

正如你所看到的,我首先选择在第一选择菜单中的“军”,那么项目将改变在第二选择菜单中的属性,黯然项目的默认预览将保持不变并不会改变。在这种情况下:“先生现场价格”。它在我选择了另一个项目后发生了变化。

但是,有没有办法改变默认预览项目,一旦我选择了第一个选择的值?


我想要什么:

1)从第一选择菜单中选择衬衫,

2)第二个选择菜单应立即改变,并表示:“坦克的价格”而不是“现场爵士价钱”。

有没有人有一个想法如何得到这个工作?

回答

0

添加默认<option>有没有价值

success: function(data){ 

     var defOption ='<option value=""> Default text</option>'; 
     // html() method replaces existing 
     $('#fds_price').html(defOption); 

     $.each($.parseJSON(data), function(index, element) { 
      ..... 
     }); 
} 

另外请注意,如果你设置dataType:'json'你不需要自己解析响应