11492 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

Je cherche à faire en sorte qu'apparaisse un menu déroulant "beta" si une option précise a été choisie dans un menu déroulant "alpha".

Je ne suis pas très à l'aise avec javascript / jquery, et j'imagine qu'il n'y a guère qu'un script client qui me permette d'arriver à mes fins pour ce genre de besoins... Smiley ohwell

Question bonus, je me demande comment gérer les événements onclick, onchange etc. quand on a affaire à un framework comme CakePHP.

Comment puis-je faire pour renseigner un événement dans ce genre de code :
echo $this->Form->select('region', $regions);


Merci pour votre aide,

Reka
Modifié par Reka (23 Jun 2015 - 21:47)
Je vous partage quand même mes essais erreurs (j'avance, mais c'est laborieux ! Smiley confused ) :

echo $this->Html->script('dropdown');
echo $this->Form->create();
[b]echo $this->Form->input('region_id', $regions, ['id'=>'region', 'type'=>'select', 'onchange'=>'checkForOther()']);[/b]
echo $this->Form->input('province_id',['id'=>'province','type'=>'select', 'options'=>$provinces, 'disabled'=>true]);

echo $this->Form->submit('Soumettre');
echo $this->Form->end();


Mon dropdown.js :

function checkForOther() {

    var choix = document.getElementById("region").selectedIndex;
    var valeur = document.getElementById('region')[ choix ].value; * 
    alert(valeur);

if (valeur === "1") {
	var province = document.getElementById("province");
	province.disabled = false;  // [b][#red] mettre le champ en disabled="false"[/#][/b] - ma méthode ne semble pas fonctionner [biggol]
}

}


*les espaces ne sont restitués que pour le présent message, sans quoi le forum convertit la string en :
document.getElementById('region') Smiley choix .value; (oui... Smiley - pour info...)
Modifié par Reka (23 Jun 2015 - 22:31)
Bon, je découvre que mon js ne réagit pas si je mets un
echo $this->Form->input('region_id',$regions,['id'=>'region','type'=>'select','onchange'=>'checkForOther()']);


Mais qu'il coopère parfaitement si je mets un :
echo $this->Form->select('region_id',$regions,['id'=>'region','onchange'=>'checkForOther()']);



Puisque je suis dans la section javascript et non client serveur, je pense que personne ne saura m'aider, d'autant que je suis finalement plus ou moins parvenue à mes fins concernant la question de départ.
Donc je mets ce sujet comme résolu ! Smiley murf