Affectation d'une valeur a une variable avec getElementById

WRInaute passionné
Bonjour à tous,
J'ai un problème avec du javascript et j'arrive pas à m'en sortir donc je viens mander votre aide :

En fait je fais une boucle php pour affiche un certains nombre d'articles, et pour chacun d'eux je propose soit de le metre en vente soit de le retirer de la vente grace à un lien javascript qui lance une fonction javascript. Le problème ce qu'il faudrait que j'utilise getElementById, car sou mozilla, ca marche (j'ai juste un avertissement dans l aconsole javascript) mais ous explorer (evidemment...) ca ne marche pas du tout

Stop le blabla, voilà le code :
Code:
<td valign="middle"><div align="left">
			&nbsp;&nbsp;&nbsp;&nbsp;<img src="<? echo $site?>images/triangle.gif" border="0"><a href="javascript:;" onClick="window.open('<? echo $site?>photos/statphoto.php?idphoto=<? echo $id_photo?>', 'stat', 'height=400, width=550, top=10, left=10')" class="petitstyle">Statistiques</a><br>
			<? if($vente==1){?>
			&nbsp;&nbsp;&nbsp;&nbsp;<img src="<? echo $site?>images/triangle.gif" border="0"><a href="javascript:{document.<? echo $nomformchang ?>.vente.value=0}; changer(<? echo $nomformchang ?>)" class="petitstyle">Retirer de la vente</a>
			<? }else{ ?>
			&nbsp;&nbsp;&nbsp;&nbsp;<img src="<? echo $site?>images/triangle.gif" border="0"><a href="javascript:{document.<? echo $nomformchang ?>.vente.value=1}; changer2(<? echo $nomformchang ?>)" class="petitstyle">Mettre en vente</a>
			<? }?>
			<br>
			&nbsp;&nbsp;&nbsp;&nbsp;<a href="javascript:;" onClick="supprimer(<? echo $nomformsupp; ?>)" class="petitstyle"><img src="<? echo $site?>images/triangle.gif" border="0">Supprimer<!--<img src="<? echo($site."Fr/images/suppr_ph_panier.gif")?>" border=0 title="supprimer">--></a>
			</div>
			<form action="dispo.php" method="post" name="<? echo $nomformchang?>">
				<input name="id_photo" type="hidden" value="<? echo $id_photo?>">
				<input name="vente" type="hidden" value="">
			</form>

le problème vient de
Code:
<a href="javascript:{document.<? echo $nomformchang ?>.vente.value=0}; changer(<? echo $nomformchang ?>)"
. $nomformchang est une variable contenant l'id d emon article.

La console javasript veut que j'utilise getElementByID, mais je vois pas comment faire....

Merci d'avance
 
WRInaute occasionnel
essaye ça :

document.getElementById("<?=$nomformchang?>").vente.value=0;


n'oublie pas de mettre aussi :

<form ... id="<?=$nomformchang?>">
..
..
</form>

c'est l'attribut id qu'il faut utiliser pas name.
 
WRInaute passionné
J'ai rajouté ca :

document.getElementById("<?$nomformchang?>").vente.value=0;

et j'ai remplacé name par id dans mon formulaire et ca ma fait une jolie exception :

uncaught exception : (Exception... "Not enough arguments [nsIDOMHTMLDocument.getElementById]" nsresult: "0x80570001 (NS_ERROR_XPX_NOT_ENOUGH_ARGS)" location : "JS frame :: javascript:{document.getElementById().vente.value=0;};changer(chang4506) :: <TOP_LEVEL> :: line 1" data: no]

dans la console javascript..
Merci d'avance pour vos conseils..;D
 
WRInaute occasionnel
dadovb a dit:
J'ai rajouté ca :

document.getElementById("<?$nomformchang?>").vente.value=0;

et j'ai remplacé name par id dans mon formulaire et ca ma fait une jolie exception :

uncaught exception : (Exception... "Not enough arguments [nsIDOMHTMLDocument.getElementById]" nsresult: "0x80570001 (NS_ERROR_XPX_NOT_ENOUGH_ARGS)" location : "JS frame :: javascript:{document.getElementById().vente.value=0;};changer(chang4506) :: <TOP_LEVEL> :: line 1" data: no]

dans la console javascript..
Merci d'avance pour vos conseils..;D

cette erreur veut dire qu'il n'y a rien en paramètre de getElementById :
tu as oublié de mettre le caractère egale après le <? :

document.getElementById("<?=$nomformchang?>").vente.value=0;
 
WRInaute passionné
ah en fait, ca ne marche que sous firefox, explorer refuse toujours de lancer la fonction javascript. Voilà le message de la console javascript :

Avertissement : Elément référencé par son ID/NAME dans le contexte global. Utilisez la propriété standard du W3C document.getElmentById() à la place.

Fichier source : javascript:{document.getElementById("chang4507").vente.value=1}; changer2(chang4507)'

Je comprends pas où peut etre le problème, changer2 est une fonction que j'ai crée.
Merci d'avance pour vos conseilsi
 
Discussions similaires
Haut