2013-05-21 4 views
0
my ($self, $c) = @_; 
$c->stash->{buildallinfo}=$c->model('DB::misc')->getTestInformation(); 

information Buildall dump est comme:liste déroulante sur l'événement de changement pour la zone de liste multiple

Apple => type2=>[2,3] 
    type4=>[2,1] 

Mango => type6=>[2,3] 
    type2=>[2,1] 

Comment les rendre en menu déroulant si déroulant une Chanes baisse automatiquement 2 devrait changer?

= pomme change

il devrait changer automatiquement une autre, il aura la liste des type2,4 thenn si c'est sélectionné, il doit montrer 2,3

comment cela ACHIVE. Je ne reçois pas tous la bonne solution pour cela.

Répondre

0

La manipulation du contenu dans les listes déroulantes est une fonction côté client, et doit être gérée par javascript. Pour Catalyst et TT, leur travail est fait quand la page est rendue - toute manipulation au-delà est le problème de quelqu'un d'autre. Cela signifie qu'entre votre modèle, Catalyst et TT, des dispositions doivent être prises pour que les données soient disponibles pour javascript. En d'autres termes, une ligne ou deux dans Template Toolkit qui garantit que tout contenu de votre cachette dont vous avez besoin d'accéder avec javascript soit converti en variables javascript.

En général, je ferais quelque chose le long de ces lignes, avec quelques jQuery:

[% USE JSON.Escape %] 

<script> 
    var buildallinfo = [% buildallinfo.json %]; 
    // we now have a JS variable that matches the structure of the perl stash variable 
    $('#select_1').change(function(){ 
     // adjust content of #select_2 using normal JS techniques 
     // $.grep(buildallinfo, ...) or whatever 
    }); 
</script> 
Questions connexes