Remplir une deuxième liste déroulante à l’aide de ColdFusion, jQuery et Ajax

J’ai un menu déroulant qui a 14 valeurs. Selon la valeur choisie, il interroge une firebase database SQL Server et renvoie certains clients à afficher dans une deuxième liste déroulante.

Je veux que la deuxième liste déroulante utilise le widget jQuery Multiselect où chaque valeur a une case à cocher à sélectionner.

Voici ce que j’ai essayé de faire en dernier lieu et cela ne fonctionne tout simplement pas.

Tier 1 Tier 2 Tier 3 Tier 4 Tier 5 Tier 6 Tier 7 Tier 8 Tier 9 Tier 10 Tier 11 Tier 12 Tier 13 Tier 14

Voici une tentative de jQuery:

  $('#click_me').click(function() { alert('here'); $.ajax({ url: 'Ajax-test.cfc?method=returnSomething', data: { Tier: $('#lstTiers').val() }, cache: false, dataType: 'json', success: function(data) { $('#lstClients').html(data); }, // This fires when an error with ColdFusion occurs error: function() { alert('An error has occured!'); } }); }); // End click() 

J’avais également essayé un autre jQuery où j’ai bouclé et construit les options.

Enfin, voici mon fichier cfc:

     SELECT Div, ClientName FROM tblClientUpgradeClients WHERE Tier = #arguments.Tier# ORDER BY Div     

Si possible, le menu déroulant renvoyé devrait permettre à l’utilisateur de sélectionner plusieurs éléments à l’aide d’une case à cocher. J’ai joué avec le widget jQuery Multiselect et cela fonctionne, mais pas avec cette requête dynamic.

 $('#lstClients).multiselect( { noneSelectedText:"All Selected", show: ["fade"], hide: ["fade"], selectedList: 1, multiple: true, uncheckAllText: ["Clear"] }); 

Je ferai de mon mieux pour utiliser la langue vernaculaire de votre code dans cet exemple

remarque j’utilise coldfusion 9.0.1 et jquery 1.9+

 jquery/javascript $('#lstTiers').on('change', function (){ $.ajax({ url:'Ajax-test.cfm', data: {'method': 'returnSomething', 'Tier': $(this).val(); }, success: function(json){ if (json != '' ) var vx=''; $.each (json, function(k, v){ vx+=''; }); $('#lstClients').html(vx); } }); //end ajax() }); 

Fusion froide

     Select * from Clients WHERE Tier = #arguments.Tier# ORDER BY 1    

voici la chose, vous devez voir quel type de retour le format json vous donne, si c’est coldfusion json, vous $.each (json.DATA, function(k, v){ la jquery à chaque itération en $.each (json.DATA, function(k, v){

Je fais les choses à la manière de MVC, et comme mon json être une sortie standard non-CF, voici donc un exemple de mon code

manette

       select distinct d.init_contact_staff, initcap(e.pref_name_sort) name from ben_activity_dtl d inner join entity e on e.id_number = d.init_contact_staff where d.nd_event_id =   and d.request_status_code =   order by 2 asc    

modèle

             

Essayez cela en utilisant cfcomponent et cfselect tag.

Le lien ci-dessous peut être utile.

http://forta.com/blog/index.cfm/2007/5/31/ColdFusion-Ajax-Tutorial-2-Related-Selects