2016-11-23 3 views
0

J'utilise le plugin JQuery choisi pour personnaliser mes options de sélection. Le plugin lui-même fonctionne bien. Cependant certaines de mes listes déroulantes utilisent AJAX POST pour filtrer/retirer une liste raffinée d'options dans un autre Select.JQuery choisi: ne pas mettre à jour l'option de sélection en arrière-plan

Le plugin JQuery est ajouté et non modifié. Mais pour une raison quelconque, lorsque je sélectionne une option dans une sélection qui filtre une sélection secondaire, la sélection secondaire ne semble pas reconnaître qu'une option a été sélectionnée.

Des idées? Quelqu'un a-t-il déjà rencontré ce problème?

  <div class="search-line"> 
       <div class="search-option"> 
        <label>Asset Type:</label> 
        <select name="AssetType" id="AssetType"> 
         <?php 

         $type_sql = "SELECT DISTINCT AssetType.AssetTypeTitle AS HardwareAssetAssetTypeTitle, HardwareAssetAssetTypeID FROM HardwareAsset INNER JOIN AssetType ON (AssetType.AssetTypeID = HardwareAsset.HardwareAssetAssetTypeID) ORDER BY HardwareAssetAssetTypeTitle ASC"; 

         $type = sqlsrv_query($database_connection, $type_sql); 

         if (!sqlsrv_has_rows($type)){ 
          echo "<option>No Records Found</option>"; 
         } 
         else{ 
          echo "<option value= ''>Select Asset Type</option>"; 
          while($type_option = sqlsrv_fetch_object($type)){ 
           echo "<option value='$type_option->HardwareAssetAssetTypeID'>".$type_option->HardwareAssetAssetTypeTitle."</option>"; 
          } 
         } 
         ?> 
        </select> 
       </div> 
       <div class="search-option"> 
        <label>Asset Sub-Type:</label> 
        <select name="AssetSubType" id="AssetSubType"> 
         <option value="">Select Asset Type First</option> 
        </select> 
       </div> 
      </div> 

AJAX:

$('#AssetType').on('change',function(){ 
    var AssetAssetTypeID = $(this).val(); 
    if(AssetAssetTypeID != 0){ 
     $.ajax({ 
      type:'POST', 
      url:'/ITSMIS/data/asset/search.php', 
      data:'AssetAssetTypeID='+AssetAssetTypeID, 
      success:function(data){ 
       $('#AssetSubType').html(data); 
      } 
     }); 
    } 
    else{ 
     $('#AssetSubType').html('<option value="">Select Asset Type First</option>'); 
    } 
}); 
+0

Pouvez-vous s'il vous plaît poster la fonction onchange que vous avez écrit pour le premier choix? –

+0

mis à jour avec l'onchange, espérons que cela aide? – TheTechnicalPaladin

Répondre

1

J'ai eu auparavant, ne sais pas pourquoi, mais faire le onchange comme ci-dessous fonctionne pour moi:

$('body').on('change','#AssetType',function(){ 
    var AssetAssetTypeID = $(this).val(); 
    if(AssetAssetTypeID != 0){ 
     $.ajax({ 
      type:'POST', 
      url:'/ITSMIS/data/asset/search.php', 
      data:'AssetAssetTypeID='+AssetAssetTypeID, 
      success:function(data){ 
       $('#AssetSubType').html(data); 
      } 
     }); 
    } 
    else{ 
     $('#AssetSubType').html('<option value="">Select Asset Type First</option>'); 
    } 
}); 
+0

il ne semble pas fonctionner – TheTechnicalPaladin

+0

Pas d'erreurs dans la console? (F12 dans le navigateur) –

+0

rien, j'ai ajouté des alertes dans le code pour voir s'il le traverse, ce qu'il fait, curieusement, si je fais une recherche sur le formulaire, l'option sélectionnée dans la liste déroulante est reconnue comme la valeur . – TheTechnicalPaladin