2016-03-03 83 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'你不需要自己解析響應