begin process at 2012 05 29 18:30:29
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Javascript / DHTML / Ajax

 > 

CSS

 > 

Général

 > 

problème avec javascript


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

problème avec javascript

lundi 27 décembre 2010 à 19:35:02 | problème avec javascript

siham2010

Bonjour,
Problème : rien ne s'affiche lorsque j'affecte des valeurs à la variable macouleur comme présenté ci-dessous
alors que lorsque je nome l'input d'une manière statique (c-à-d, je met
Code Javascript :
<input value="000000" name="macouleur" size="6" type="text">

)
le script fonctionne bien et m'affiche les valeurs désirées en faisant passer la souris au dessus d'une palette de couleur.
N.B: le test a été réalisé sur firefox et IE8.

Code Javascript :
//formulaire utilisé dans test.php
<form id="form" name="form3" action="test.php" method="post" enctype="multipart/form-data">		
	<label for="couleur_amz">Couleur :</label>
	Palette : <input value="000000" name="macol" size="6" type="text">
	<script type="text/javascript">
		var macouleur="macol";
	</script>
	<script type="text/javascript" src="test_js.js"></script>
</form>

//fonctions utilisées dans test_js.js
function describe1(aColor) {
  if (aColor != blankColor) {
    this.document.form3.macouleur.value=aColor.hex;
  } else {
    self.status = '';
  }
}
function cellOnOver(index) {
  describe1(namedColors[index]);
  return false;
}

mardi 28 décembre 2010 à 10:44:54 | Re : problème avec javascript

PetoleTeam

Membre Club
Bonjour,
- comment sont appelées les fonctions ?
- comment sont affectées les nouvelles valeurs et où ?

;O)
mardi 28 décembre 2010 à 11:19:59 | Re : problème avec javascript

siham2010

les fonctions sont appelées au sein du javascript alors que dans le programme PHP je fais appel au script grâce à cette ligne
Code Javascript :
<script type="text/javascript" src="test_js.js"></script>

Par ailleurs, les variables sont déclarées globalement grâce à ce code :
Code Javascript :
<script type="text/javascript">
		var macouleur="macol";
	</script>


Comment dois je les appeler
Merci bien pour ta coopération
mardi 28 décembre 2010 à 12:02:57 | Re : problème avec javascript

PetoleTeam

Membre Club
je n'y vois pas plus clair...où est ce que tu affectes une valeur à la variable macouleur.

voici un petit exemple de récupération, puisse t-il t'aider
Code Javascript :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
<head>
<title>...</title>
</head>
<body>
<div>
<table id="T_COLOR">
  <tr><td>#000020</td><td>#000080</td><td>#0000ff</td></tr>
  <tr><td>#002000</td><td>#008000</td><td>#00ff00</td></tr>
  <tr><td>#200000</td><td>#800000</td><td>#ff0000</td></tr>
</table>
<input id="I_COLOR" type="text" value="">
</div>
<script type="text/javascript">
  var oTable = document.getElementById('T_COLOR');
  var oCell  = oTable.getElementsByTagName('td');
  for( var i = 0, nb = oCell.length; i <nb; i++){
    oCell[i].onmouseover = function(){
      document.getElementById('I_COLOR').value = this.innerHTML;
    }
  }
</script>
</body>
</html>


;O)
mardi 28 décembre 2010 à 13:42:03 | Re : problème avec javascript

siham2010

Merci pour ta réponse.
le problème pour moi c'est d'avoir la possibilité d'utiliser le script à plusieurs reprises dont le nombre n'est pas fixe dans le même formulaire.
C-à-d que j'ai besoin d'envoyer l'id de ton tableau "T_COLOR" en tant qu'une variable et non pas l'utilisée dans le script statiquement.
mardi 28 décembre 2010 à 15:01:10 | Re : problème avec javascript

PetoleTeam

Membre Club
l'exemple que j'ai mis est la pour te montrer, l'appel et l'affectation, on aurait pu faire une fonction plus générique.

Dans ce que tu nous montre ce qui pêche c'est que l'on ne voit pas COMMENT tu appelles la(es) fonction(s) et COMMENT tu affectes la(les) valeur(s).

Dans ta FORM je ne vois nulle part un code du genre onchange="Action();", en gros qui fait quoi et comment.

;O)
mardi 28 décembre 2010 à 15:41:21 | Re : problème avec javascript

siham2010

Au départ j'ai présenté la partie du script où j'ai besoin d'apeller les variables, néanmoins voici le contenu du fichier "test_js.js" tout en entier.
Merci.
Code Javascript :
function Color(aStr, aHex) {
  this.str = aStr;
  this.hex = aHex;
}

var columns = 16;
var imgWidth = 6, imgHeight = 6;
var blankColor = new Color('', '');

var namedColors = new Array(
  new Color('#000000',                '000000'),
  new Color('#505050',                '505050'),
  new Color('#606060',                '606060'),
  new Color('#707070',                '707070'),
  new Color('#E0E0E0',                'E0E0E0'),
  new Color('#F0F0F0',                'F0F0F0'),
  new Color('#FFFFFF',                'FFFFFF'),
  new Color('#D00000',                'D00000'),
  new Color('#FFFF50',                'FFFF50'),
  new Color('#FFFF70',                'FFFF70'),
  new Color('#FFFF90',                'FFFF90'),
  new Color('#FFFFB0',                'FFFFB0'),
  new Color('#FFFFD0',                'FFFFD0'),
  new Color('#FFFFF0',                'FFFFF0'),
);

function describe1(aColor) {
  if (aColor != blankColor) {
    this.document.form3.macouleur.value=aColor.hex;
  } else {
    self.status = '';
  }
}

function describe2(aColor) {
  if (aColor != blankColor) {
    this.document.form3.secouleur.value=aColor.hex;
  } else {
    self.status = '';
  }
}
function cellOnOver(index) {
  describe1(namedColors[index]);
  return false;
}

function cellOnClick(index) {
  describe2(namedColors[index]);
  return false;
}

function printColorTable() {
  var counter = 0;
  var tdln = counter;

  document.writeln('<TABLE id=table2 WIDTH=' + imgWidth*columns + ' bgcolor=#808080><tr><td>');
  document.writeln('<TABLE>');

  while (counter < namedColors.length) {

    if (tdln == 0) { document.writeln('<TR align=center>'); }

    document.write('<TD BGCOLOR='+namedColors[counter].str+' WIDTH='+(imgWidth)+'>');
    document.write('<A HREF="javascript:void(0)" ');
    document.write('onmouseover="return cellOnOver('+counter+')" onClick="return cellOnClick('+counter+')"> ');
    document.write('<font size=1 color='+namedColors[counter].str+'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font>');
    document.write('</A>');
    document.write('</TD>');

    if (tdln == (columns-1)) { document.writeln('</TR>'); tdln=0;}
    else tdln++;

    counter++;
  }

  document.writeln('</TABLE>');
  document.writeln('</td></tr></TABLE>');
}

printColorTable();
mardi 28 décembre 2010 à 16:27:57 | Re : problème avec javascript

PetoleTeam

Membre Club
cela reviens à ce que je t'ais présenté
dans une fonction on trouve
Code Javascript :
this.document.form3.macouleur.value=aColor.hex;

mais pas de trace d'un élément dans ta FORM form3 ayant pour NAME macouleur
il te faut donc écrire
Code HTML :
<form id="form" name="form3" action="test.php" method="post" enctype="multipart/form-data">		
  <label for="couleur_amz">Couleur :</label>
  Palette : <input value="000000" name="macouleur" size="6" type="text">
  <!-- ne sert à RIEN 
  <script type="text/javascript">var macouleur="macol";</script>
  -->
  <script type="text/javascript" src="test_js.js"></script>
</form>

et encore un point qui plante ton script
Code Javascript :
var namedColors = new Array(
  new Color('#FFFFD0', 'FFFFD0'),
  new Color('#FFFFF0', 'FFFFF0'), // ICI virgule de fin en trop
);


;O)
mardi 28 décembre 2010 à 17:44:51 | Re : problème avec javascript

siham2010

En ce qui concerne la virgule c'est vrai, je l'ai oublié lorsque j'ai réduit le vecteur de couleur pour te l'envoyer.
Alors ce qui concerne le formulaire html j'ai besoin d'appeler la palette de couleur à plusieurs reprises sachant que le nombre de reprises dépendra du choix de l'utilisateur. Le formulaire complet est comme suit:
Code HTML :
<form id="form" name="form3" action="test.php" method="post" enctype="multipart/form-data">
	<fieldset id="nom_fr">
		<legend>
			<input type="checkbox" name="nom_fr" value="nom_fr" id="nom_fr" onclick="document.getElementById('fr').style.display= ''"/>
			<label for="checkbox"> Nom Français</label>
		</legend>
			<br />
			<div id="fr" style="display: none">
				<label for="police_fr">Police :</label> 
				<SELECT name=police_fr> 
					<OPTION value="Arial, Helvetica, sans-serif">Arial, Helvetica, sans-serif
					<OPTION value="Times New Roman, Times, serif">Times New Roman, Times, serif
					<OPTION value="Courier New, Courier, mono">Courier New, Courier, mono
					<OPTION value="Verdana, Arial, Helvetica, sans-serif">Verdana, Arial, Helvetica, sans-serif
					<OPTION value="Geneva, Arial, Helvetica, san-serif">Geneva, Arial, Helvetica, san-serif
					<OPTION value="Comic Sans MS">Comic Sans MS
					<OPTION selected value=aucun>Par défault</OPTION>
				</SELECT> 
				<br /><br />
				<label for="taille_fr">Taille de la police :</label> 
				<SELECT name=taille> 
					<OPTION selected value=8>8
					<OPTION value=10>10
					<OPTION value=12>12 </OPTION>
				</SELECT>
				<br /><br />
				<label for="couleur_fr">Couleur :</label>
				Palette : <input value="000000" name="macol_fr" size="6" type="text">
				Clickez ci-dessous pour s&eacute;lectionez votre choix : <input value="" name="secol_fr" size="6" type="text">
				<script type="text/javascript">
					var macouleur="macol_fr", secouleur="secol_fr";
				</script>
				<script language="JavaScript" src="test_js.js"></script>
			</div>
			<br /><br />
	</fieldset>
	<fieldset id="nom_ar">
		<legend>
			<input type="checkbox" name="nom_ar" value="nom_ar" id="nom_ar" onclick="document.getElementById('ar').style.display= ''"/>
			<label for="checkbox_ar"> Nom Arabe</label>
		</legend>
			<br />
			<div id="ar" style="display: none">
				<label for="police_ar">Police :</label> 
				<SELECT name=police_fr> 
					<OPTION value="Arial, Helvetica, sans-serif">Arial, Helvetica, sans-serif
					<OPTION value="Times New Roman, Times, serif">Times New Roman, Times, serif
					<OPTION value="Courier New, Courier, mono">Courier New, Courier, mono
					<OPTION value="Verdana, Arial, Helvetica, sans-serif">Verdana, Arial, Helvetica, sans-serif
					<OPTION value="Geneva, Arial, Helvetica, san-serif">Geneva, Arial, Helvetica, san-serif
					<OPTION value="Comic Sans MS">Comic Sans MS
					<OPTION selected value=aucun>Par défault</OPTION>
				</SELECT> 
				<br /><br />
				<label for="taille_ar">Taille de la police :</label> 
				<SELECT name=taille> 
					<OPTION selected value=8>8
					<OPTION value=10>10
					<OPTION value=12>12 </OPTION>
				</SELECT>
				<br /><br />
				<label for="couleur_ar">Couleur :</label>
				Palette : <input value="000000" name="macol_ar" size="6" type="text">
				Clickez ci-dessous pour s&eacute;lectionez votre choix : <input value="" name="secol_ar" size="6" type="text">
				<script type="text/javascript">
					var macouleur="macol_ar", secouleur="secol_ar";
				</script>
				<script language="JavaScript" src="test_js.js"></script>
			</div>
			<br /><br />
	</fieldset>
	<fieldset id="nom_en">
		<legend>
			<input type="checkbox" name="nom_en" value="nom_en" id="nom_en" onclick="document.getElementById('en').style.display= ''"/>
			<label for="checkbox_en"> Nom Anglais</label>
		</legend>
			<br />
			<div id="ar" style="display: none">
				<label for="police_en">Police :</label> 
				<SELECT name=police_en> 
					<OPTION value="Arial, Helvetica, sans-serif">Arial, Helvetica, sans-serif
					<OPTION value="Times New Roman, Times, serif">Times New Roman, Times, serif
					<OPTION value="Courier New, Courier, mono">Courier New, Courier, mono
					<OPTION value="Verdana, Arial, Helvetica, sans-serif">Verdana, Arial, Helvetica, sans-serif
					<OPTION value="Geneva, Arial, Helvetica, san-serif">Geneva, Arial, Helvetica, san-serif
					<OPTION value="Comic Sans MS">Comic Sans MS
					<OPTION selected value=aucun>Par défault</OPTION>
				</SELECT> 
				<br /><br />
				<label for="taille_en">Taille de la police :</label> 
				<SELECT name=taille> 
					<OPTION selected value=8>8
					<OPTION value=10>10
					<OPTION value=12>12 </OPTION>
				</SELECT>
				<br /><br />
				<label for="couleur_en">Couleur :</label>
				Palette : <input value="000000" name="macol_en" size="6" type="text">
				Clickez ci-dessous pour s&eacute;lectionez votre choix : <input value="" name="secol_en" size="6" type="text">
				<script type="text/javascript">
					var macouleur="macol_en", secouleur="secol_en";
				</script>
				<script language="JavaScript" src="test_js.js"></script>
			</div>
			<br /><br />
	</fieldset>
</form>
mercredi 29 décembre 2010 à 10:03:51 | Re : problème avec javascript

PetoleTeam

Membre Club
Réponse acceptée !
Bonjour,
je ne sais comment et quel ordre utiliser, alors je me lance

En un, ajout d'une ID aux champs devant être modifiés
Code HTML :
Palette : 
<input value="000000" id="macol_en" name="macol_en" size="6" type="text">
Clickez ci-dessous pour s&eacute;lectionez votre choix : 
<input value="" id="secol_en" name="secol_en" size="6" type="text">
ce qui va nous permettre d'y accéder facilement avec un simple document.getElementById('nom_id')

En deux, il faut passer à la fonction principale, à savoir printColorTable() l'ID des champs à modifier pour un appel de la sorte
Code Javascript :
printColorTable( "macol_en", "secol_en");
on verra après ou la mettre
Ceci entraîne qu'il faut la modifier pour utiliser ces paramètres
l'entête devient
Code Javascript :
//-----------------------------------------
function printColorTable( idmacol, idsecol){
// corps de la fonction
}

En trois, maintenant il faut utiliser les paramètres et c'est dans le corps de la fonction que cela ce passe, et notamment sur cette ligne
Code Javascript :
document.write('onmouseover="return cellOnOver('+counter+')" onClick="return cellOnClick('+counter+')"> ');
elle devient
Code Javascript :
document.write('onmouseover="return cellOnOver(\'' +idmacol +'\',' +counter+')" onclick="return cellOnClick(\'' +idsecol +'\',' +counter+')"> ');
comme cela on passe en paramètre idmacol et idsecol aux fonctions appelées sur les événements

Maintenant il faut prendre en compte le passage de ces paramètre aux fonctions appelées, en premier
Code Javascript :
//----------------------------
function cellOnOver(id, index){ // ajout du parametre id
  describe1( id, namedColors[index]); // transmet le parametre a l'autre fonction
  return false;
}
et pour la fonction describe1
Code Javascript :
//-----------------------------
function describe1( id, aColor){ // ajout du parametre id
  if (aColor != blankColor) {
    //-- recup element INPUT
    var oInput = document.getElementById( id);
    //-- affectation valeur
    oInput.value = aColor.hex;
  } else {
    self.status = '';
  }
}
D'ailleurs pourquoi 2 fonctions et pas une seule ici, cela serait suffisant, mais bon.

En quatre, il faut réorganiser le code
inséres, entre les balises <head> et </head>s ton fichier SCRIPT, dans lequel tu auras pris soin de supprimer l'appel à la fonction printColorTable();

dans le HTML, il te reste à faire l'appel à cette fonction en mettant en paramètres les champs concernés
Code HTML :
Palette :
<input type="text" id="macol_en" name="macol_en" size="6" value="000000">
Clickez ci-dessous pour s&eacute;lectionez votre choix :
<input type="text" id="secol_en" name="secol_en" size="6" value="">
<script type="text/javascript">
  printColorTable( 'macol_en' ,'secol_en');
</script>


Voilou ceci est à faire pour tous et à tester.

;O)

1 2

Cette discussion est classée dans : problème, code, test, js, macouleur


Répondre à ce message

Sujets en rapport avec ce message

Problème débutant.... [ par stanilou ] Salut,Si je post c'est que j'ai un problème! Alors voilà, moi je veux créé un truc tout simple: Une fonction appelé grâce à un liens....Jusque là pas Problème fonction [ par stanilou ] Salut,Je suis vraiment désoler, le premier message que j'ai posté était dans la mauvaise catégorie... Je le remet donc à ça place ici (Le Modo peut su débutant, utilisation d'un code js [ par tortuedu74 ] Bonjour, Je code un intranet avec visualStudio 2008.Ne pouvant pas afficher de msgBox, j'ai opté pour le javascript (dont je ne connais rien... ).voic Problème avec un manège 3D Javascript. [ par romainroffi ] Bonjour tout le monde. Je suis en train de faire un site j'ai mis un manège 3D dans ma page. Ce manège 3D je l'ai trouvé sur ce site: [url=http recuperer valeur d'un input un peu special... [ par deathsurfer ] Bonjour a tous! Une page aspx genere une page html qui contient cette chaine la: [code=js] 01/Aug/2009 ( 3 days left) 08/Aug/2009 ( Problème de positionnement d'une vidéo dans une page [ par Papapetch ] Bonjour Je ne sais pas si ce forum est bien choisi pour ce sujet mais voilà le problème qui me coince. J'ai intégré une video flv dans une page par c Problème avec un lien javascript [ par matdev62 ] J'ai créé un bouton à l'aide de javascript. Celui fonctionne correctement sous IE mais pas sous FF. Voici le code [code] echo"getBaseUrl()."/".$ress Ridicule problème : boucle for [ par RealSociopath ] Bonjour à tous ! Je vous présente un problème certainement risible pour vous mais qui est pour moi insolvable avec mes débuts de connaissance en js. Problème de test d'un input text dynamique avec js [ par alaska749 ] Bonsoir, J'ai un problème avec le test d'un input text dynamique. En effet, dans le code ci-joint l'utilisateur peut à son grée ajouter ou pas des élé problème avec le boutton close d'un Panel [ par wagdifr ] Bonjour , voici mon code : [code=js] com = new YAHOO.widget.Panel("test", { fixedcenter:true,


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,356 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales