deux evenements onChange sur un select
16 messages
• Page 1 sur 2 • 1, 2
-

webac - WRInaute occasionnel

- Messages: 373
- Inscription: 4 Mar 2005
deux evenements onChange sur un select
Bonjour je souhaite attribuer un evenement onChange en fonction du choix d'un select .
par exemple j'ai deux options dans mon select :
Pour la selection de
maintenant pour la selection
Merci de votre aide
par exemple j'ai deux options dans mon select :
- Code: Tout sélectionner
<select id="ramass" onchange="document.getElementById('$numero$mois$annee').style.display = (this.options[this.selectedIndex].value=='versement'? 'block':'none');">
<option value=""></option>
<option value="versement">Versement</option>
<option value="pasramasse">Pas de ramassage</option>
</select>
Pour la selection de
- Code: Tout sélectionner
<option value="versement">Versement</option>
maintenant pour la selection
- Code: Tout sélectionner
<option value="pasramasse">Pas de ramassage</option>
Merci de votre aide
-

BadProcESs - WRInaute accro

- Messages: 2657
- Inscription: 28 Juil 2003
Pas besoin de faire 2 onchange, contrôle simplement dans ta méthode si c'est cette entrée qui est sélectionnée, alors tru affiche un message, et ensuite tu continu le process normal...
-

blman - WRInaute accro

- Messages: 3077
- Inscription: 5 Sep 2003
il te suffit de faire une fonction :
ET tu peux l'appeler comme ça :
<select id="ramass" onchange="evenOnChange()">
- Code: Tout sélectionner
<script language="javascript">
function evenOnChange(){
if(document.getElementById('ramass').options[document.getElementById('ramass').selectedIndex].value=="versement"){
document.getElementById('$numero$mois$annee').style.display = (this.options[this.selectedIndex].value=='versement'? 'block':'none');
}
else{
afficheboitdedialogue();
}
}
ET tu peux l'appeler comme ça :
<select id="ramass" onchange="evenOnChange()">
Dernière édition par blman le Mer Oct 22, 2008 10:38, édité 1 fois.
-

webac - WRInaute occasionnel

- Messages: 373
- Inscription: 4 Mar 2005
help,
j'ai testé ta méthode blman mais sans succès il ne se passe rien lors de la selection d'une option, j'ai tenté de bidouiller mais rien y fait.
si vous pouvez m'aiguiller vers la bonne syntaxe ça serait super sympas.
Merci encore
j'ai testé ta méthode blman mais sans succès il ne se passe rien lors de la selection d'une option, j'ai tenté de bidouiller mais rien y fait.
si vous pouvez m'aiguiller vers la bonne syntaxe ça serait super sympas.
Merci encore
-

blman - WRInaute accro

- Messages: 3077
- Inscription: 5 Sep 2003
C'est sûr oui, la méthode est bonne, après il y a des ajustements à faire :
- déjà voir ça : $numero$mois$annee qu'est-ce que c'est ? du PHP ?
- Ensuite vérifie les id
- La fonction afficheboitdedialogue(); n'existe pas, hein, c'était pour l'exemple
Mais si tu ne connais pas javascript, tu va avoir du mal à adapter le code à ton cas.
- déjà voir ça : $numero$mois$annee qu'est-ce que c'est ? du PHP ?
- Ensuite vérifie les id
- La fonction afficheboitdedialogue(); n'existe pas, hein, c'était pour l'exemple
Mais si tu ne connais pas javascript, tu va avoir du mal à adapter le code à ton cas.
-

webac - WRInaute occasionnel

- Messages: 373
- Inscription: 4 Mar 2005
blman je suis effectivement une bille en javascript mais je comprends néanmoins ton code et j'ai bien vérifié les id de mes champs de texte et select mais rien y fait, aucun événemment sur aucune des selections je poste le code de ma page si tu veux bien y jetter un oeil.
meme la fonction de départ d'affichage du chmps de text portant l'id 'test' ne s'effectue pas
merci de ton aide en tous cas.
- Code: Tout sélectionner
<script language="javascript">
function versement(){
if(document.getElementById('ramass').options[document.getElementById('ramass').selectedIndex].value=="versement"){
document.getElementById('test').style.display = (this.options[this.selectedIndex].value=='versement'? 'block':'none');
}
}
</script>
<form name="selection" action="" id="selection">
<table>
<th scope='col' bordercolor='#ffffff'></th><th scope='col' bordercolor='#ffffff'></th></tr>
<tr align='left'>
<th scope='row' bordercolor='#ffffff'> </th>
<td bordercolor='#ffffff'> </td>
<td bgcolor=#FF9999> </td>
<td bgcolor=#FF9999> </td>
<td bgcolor=#FF9999> </td>
</tr>
<tr align='left'><th scope='row' bordercolor='#ffffff'>$jour</th><td bordercolor='#ffffff'>$nbjour</td>
<td bgcolor=#FF9999><input type='text' name='test' id ='test' size='10' style="display:none;"></td>
<td bgcolor=#FF9999><input type='text' name='test2' size=10></td>
<td bgcolor=#FF9999><input type='text' name='test3' size=10></td>
<td>
<select id="ramass" onchange="versement();">
<option value=""></option>
<option value="versement">Versement</option>
<option value="pasramass">Pas de ramassage</option>
</select>
</td>
</tr>
</table>
</form>
meme la fonction de départ d'affichage du chmps de text portant l'id 'test' ne s'effectue pas
merci de ton aide en tous cas.
-

blman - WRInaute accro

- Messages: 3077
- Inscription: 5 Sep 2003
tu met this.options dans ta fonction. Le this est surement indéfini ici.
Utilise plutôt document.getElementById('ramass') à la place.
Sinon passe en mode débuggage et place des alertes un peu partout dans le code alert("pouic"); pour voir où ça merde.
Utilise tu la web developper bar sous firefox ? Elle te donne pas mal d'infos sur les erreurs en javascript.
Utilise plutôt document.getElementById('ramass') à la place.
Sinon passe en mode débuggage et place des alertes un peu partout dans le code alert("pouic"); pour voir où ça merde.
Utilise tu la web developper bar sous firefox ? Elle te donne pas mal d'infos sur les erreurs en javascript.
-

webac - WRInaute occasionnel

- Messages: 373
- Inscription: 4 Mar 2005
je rencontre un autre probleme, je vais poster tout mon code mais j'explique dabord mon probleme :
si je selectionne le deuxieme select alors la fonction ne fonctionne pas.
la fonction ne fonctionne que si le premier select est selectionné .
voici mon code :
Merci de votre aide.
si je selectionne le deuxieme select alors la fonction ne fonctionne pas.
la fonction ne fonctionne que si le premier select est selectionné .
voici mon code :
- Code: Tout sélectionner
<?
//Inclusion du ficher de connexion a la BDD
include ('connexion.php');
//Requette pour recuperer le total crédité du mois selectionné.
$sumcredit="SELECT SUM( `versement` ) FROM `ramassage_data` WHERE magasin = '$magasin' AND `id` LIKE '%$mois$annee%' AND `validation` = 'oui' ";
$req = mysql_query($sumcredit) or die('Erreur SQL !'.$sumcredit.'<br>'.mysql_error());
list($credit) = mysql_fetch_row($req);
$totalcredit = $credit;
//Requette pour recuperer le total non crédité du mois selectionné.
$sumnoncredit="SELECT SUM( `versement` ) FROM `ramassage_data` WHERE magasin = '$magasin' AND `id` LIKE '%$mois$annee%' AND `validation` != 'oui' ";
$req2 = mysql_query($sumnoncredit) or die('Erreur SQL !'.$sumnoncredit.'<br>'.mysql_error());
list($noncredit) = mysql_fetch_row($req2);
$totalnoncredit = $noncredit;
//Mise en forme du tableau
echo "<form action='validation.php' method='post' name='ramassage' id='ramassage'><table border='1' bordercolor='#00000' cellspacing='2' cellpadding='2'>\n";
echo "<tr>\n";
echo "<tr align='left'>
<th scope='row' bordercolor='#ffffff'></th>
<td bordercolor='#ffffff'></td>
<td bgcolor=#FFFFFF align='center'><strong>Versement</strong></td>
<td bgcolor=#FFFFFF align='center'><strong>Selection</strong></td>
<td bgcolor=#FFFFFF align='center'><strong>Cmd Monnaie</strong></td>
<td bgcolor=#FFFFFF align='center'><strong>Rbt Monnaie</strong></td>
</tr>";
$date = date ('t', mktime(0, 0, 0, $mois, 1, date("$annee") ));
$nbjour='0';
$numjour='1';
$numero='0';
while ($nbjour < $date) {
$jour = date("D", mktime(0, 0, 0, $mois, $numjour, date("$annee") ));
$numero++;
$numjour++;
$nbjour++;
//Requete de récupération des données en fonction de la date et du magasin
$sql="SELECT * FROM ramassage_data WHERE id = '$numero$mois$annee' AND magasin= '$magasin'";
$req3 = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
$versement='';
$cmonnaie='';
$rbtmonnaie='';
while ($cl = mysql_fetch_array ($req3)){
$versement=$cl['versement'];
$cmonnaie=$cl['cmdmonnaie'];
$rbtmonnaie=$cl['rbtmonnaie'];
}
//changement des jours us en fr
if ($jour=='Mon'){$jour='Lundi';}
if ($jour=='Tue'){$jour='Mardi';}
if ($jour=='Wed'){$jour='Mercredi';}
if ($jour=='Thu'){$jour='Jeudi';}
if ($jour=='Fri'){$jour='Vendredi';}
if ($jour=='Sat'){$jour='Samedi';}
if ($jour=='Sun'){$jour='Dimanche';}
//fonction javascript pour les differents choix du select
echo "<script language=\"javascript\">\n";
echo "function versement$numero(){" ;
echo "if(document.getElementById('ramass').options[document.getElementById('ramass').selectedIndex].value==\"versement\"){
document.getElementById('$numero$mois$annee').style.display =(document.getElementById('ramass').options[document.getElementById('ramass').selectedIndex].value==\"versement\"? 'block':'none');}\n";
echo "else if(document.getElementById('ramass').options[document.getElementById('ramass').selectedIndex].value==\"pasramass\"){ if(confirm('Etes vous sur que le versement n\'a pas eu lieu'))document.location.href='pasramass.php?id=$numero$mois$annee&magasin=$magasin';} } \n";
echo "</script>\n";
//affichage des cellules correspondantes aux jours de ramassage en jaune
$jour_ramassage1='';
$jour_ramassage2='';
$bg="SELECT ramassage1, ramassage2 FROM ramassage WHERE magasin ='$magasin'";
$reqbg = mysql_query ($bg) or die ('Erreur SQL !'.$bg.'<br>'.mysql_error());
while ($cl = mysql_fetch_array ($reqbg)){
$jour_ramassage1=$cl['ramassage1'];
$jour_ramassage2=$cl['ramassage2'];}
$bgcolor='white';
if ($jour_ramassage1==$jour or $jour_ramassage2==$jour){$bgcolor='yellow';}
//Suite et fin de l'affichage du tableau
echo "<th scope='col' bordercolor='#ffffff'></th><th scope='col' bordercolor='#ffffff'></th></tr>";
echo "<tr align='left'><th scope='row' bordercolor='#ffffff' bgcolor=$bgcolor>$jour</th><td bordercolor='#ffffff' bgcolor=$bgcolor>$nbjour</td>";
echo "<td bgcolor='#FF9999' valign='bottom' align='center'><input type='text' name=$numero$mois$annee id=$numero$mois$annee size=10 value='$versement' style='display:none;'></td>";
echo "<td bgcolor='#FF9999' align='center'><select id='ramass' onchange=\"return versement$numero();\" >
<option value='' selected='selected'></option>
<option value='versement'>Versement</option>
<option value='pasramass'>Pas de ramassage</option>
</select></td>";
echo "<td bgcolor='#FF9999' align='center'><input type='text' name='cmonnaie$numero$mois$annee' size='10' value='$cmonnaie'></td>";
echo "<td bgcolor='#FF9999' align='center'><input type='text' name='rmonnaie$numero$mois$annee' size='10' value='$rbtmonnaie'></td>";
}
echo "<tr align='left'><th scope='row' bordercolor='#ffffff'></th><td bordercolor='#ffffff'>Total crédité</td>\n";
echo "<td bgcolor=#00FF33><input type='text' name='totalcredit' size=10 readonly='readonly' value='$totalcredit'></td></tr>\n";
echo "<tr><th scope='row' bordercolor='#ffffff'></th><td bordercolor='#ffffff'>Total non crédité</td>\n";
echo "<td bgcolor=#FF9999><input type='text' name='totalnon' size=10 readonly='readonly' value='$totalnoncredit'></td>\n";
echo "<td>Solde commande Monnaie</td>\n";
echo "<td><input type='text' name='soldecmonnaie' size=10 readonly='readonly' value=''></td>\n";
echo "</tr>\n";
echo "</table></form>\n";
?>
Merci de votre aide.
-

Bacteries - WRInaute passionné

- Messages: 1369
- Inscription: 27 Mai 2004
Ton code est illissible >_<
A quoi ça sert de se compliquer la vie avec ce genre de code PHP?
Alors qu'en enlevant les echo et en sortant de ton code PHP tu pourrais avoir un code lisible, qui t'évites les antiquotes, ...
Exemple
Ca t'évite plein de bug.
Ensuite deuxisème soucis : a quoi ça sert de faire des fonction si t'en fait une par select?? (si j'ai compris ton code).
Le but d'une fonction c'est de factoriser des choses que tu dois faire plusieurs fois.
Donc renouveau rappel : passe 4H à lire les bases du javascript / programmation. T'aurais déjà fini ton script au lieu d'avancer à l'aveuglette.
Ensuite en utilisant des choses comme firebug tu pourra facilement débugger tes scripts javascript.
A quoi ça sert de se compliquer la vie avec ce genre de code PHP?
- Code: Tout sélectionner
echo "<script language=\"javascript\">\n";
echo "function versement$numero(){" ;
echo "if(document.getElementById('ramass').options[document.getElementById('ramass').selectedIndex].value==\"versement\"){
document.getElementById('$numero$mois$annee').style.display =(document.getElementById('ramass').options[document.getElementById('ramass').selectedIndex].value==\"versement\"? 'block':'none');}\n";
echo "else if(document.getElementById('ramass').options[document.getElementById('ramass').selectedIndex].value==\"pasramass\"){ if(confirm('Etes vous sur que le versement n\'a pas eu lieu'))document.location.href='pasramass.php?id=$numero$mois$annee&magasin=$magasin';} } \n";
echo "</script>\n";
Alors qu'en enlevant les echo et en sortant de ton code PHP tu pourrais avoir un code lisible, qui t'évites les antiquotes, ...
Exemple
- Code: Tout sélectionner
?>
<script language="javascript">
function versement(){
...
<?php
Ca t'évite plein de bug.
Ensuite deuxisème soucis : a quoi ça sert de faire des fonction si t'en fait une par select?? (si j'ai compris ton code).
Le but d'une fonction c'est de factoriser des choses que tu dois faire plusieurs fois.
Donc renouveau rappel : passe 4H à lire les bases du javascript / programmation. T'aurais déjà fini ton script au lieu d'avancer à l'aveuglette.
Ensuite en utilisant des choses comme firebug tu pourra facilement débugger tes scripts javascript.
16 messages
• Page 1 sur 2 • 1, 2
Lectures recommandées sur ce thème :
- select et onChange
- Comment mettre 2 onchange dans un <select>
- prbl javascript : onchange vers onclick
- Tri avec SELECT ..... IN SELECT ...
- Evenements et influences
- évènements, adwords et mis en place
- Javascript et évènements (EVENT / addEventListener) ?
- Calendrier dynamique évenements personalisable
- Les événements Internet marquants en 2005 ?
- Qu'est-ce que les événements dans Google Analytics ?
- Outils Google pour les entreprises : Google Agency Toolkit - 01-03-2009
- De la publicité ciblée dans les cartes de Google Local - 31-03-2006
- Les adresses IP de Google et Googlebot - 05-10-2006
- Google écrit parfois au webmaster en cas de blacklistage - 16-09-2005
- Liste des produits et services de Google - 07-12-2005
- Google AdWords introduit le concept de niveau de qualité - 03-10-2005
- Récapitulatif sur Google AdWords - 14-03-2009
Consultez la description détaillée des produits ou services de Google suivants : Google Calendar
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité
